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
Voici le code que j'utilise;
-Envoi :
-Réception :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Voila, Merci bien votre aide !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Partager