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 :

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
-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
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 !