[VB.NET] Integrer le nom du fichier à l'envoi
Bonjour toute le monde,
je fais un programme de transfert de fichiers d'un pc à un autre en utilisant le protocole TCP, ce dernier fonctionne et il transmet le fichier comme prévu mais le problème c'est que je dois définir à chaque fois le nom du fichier des deux coté (Envoi/Réception) et ça devient énervant ! :?
j'aimerais seulement pouvoir transférer des fichiers sans avoir à saisir leur nom à chaque fois :aie:
Voici le code que j'utilise;
-Envoi :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
SendFile()
End Sub
Private Shared Sub SendFile()
Using tcpClient As New TcpClient("127.0.0.1", 80)
Using networkStream As NetworkStream = tcpClient.GetStream()
Dim dataToSend As Byte() = File.ReadAllBytes("D:\SentFile.zip")
networkStream.Write(dataToSend, 0, dataToSend.Length)
networkStream.Flush()
End Using
tcpClient.Close()
End Using
End Sub
End Class |
-Réception :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
|
Public Class Form1
Dim localAddress As IPAddress = IPAddress.Any
Dim port As Integer = 80
Dim tcpListener As New TcpListener(localAddress, port)
Dim thread_réception As New Thread(AddressOf Listen)
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
thread_réception.Start()
End Sub
Private Sub Listen()
Try
tcpListener.Start()
While True
Dim tcpClient As TcpClient = tcpListener.AcceptTcpClient()
Dim networkStream As NetworkStream = tcpClient.GetStream()
Dim stream As Stream = New FileStream("D:\Fichier_Reçu.zip", FileMode.Create, FileAccess.ReadWrite)
Dim bytes As [Byte]() = New [Byte](1023) {}
Dim length As Integer = networkStream.Read(bytes, 0, bytes.Length)
While length > 0
stream.Write(bytes, 0, length)
length = networkStream.Read(bytes, 0, bytes.Length)
End While
stream.Close()
tcpClient.Close()
End While
tcpListener.Stop()
Catch e As SocketException
MsgBox(e.ToString)
End Try
End Sub
Private Sub Form1_FormClosed(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles MyBase.FormClosed
tcpListener.Stop()
thread_réception.Abort()
End Sub |
Voila, Merci bien votre aide ! :P