Envoi d'image socket - VB.NET

lsjduejd Messages postés 61 Statut Membre -  
 rovagasy -
Bonjour,

j'ai un problème avec l'envoi d'un fichier (en l'occurrence une image) par sockets entre deux ordinateurs distants. Le problème c'est que quand j'envoie l'image avec le client, le serveur ne la reçoit qu'à 10 %.

Mon code d'envoi (je suppose que le problème se loge ici) :

        
 Dim ipsett As String = My.Settings.ip
 Dim ip As System.Net.IPAddress = IPAddress.Parse(ipsett)
 Dim port As String = My.Settings.port
 Private IpEndPoint As New IPEndPoint(ip, port)
[...]

   Dim ms As New MemoryStream()
            screenshot.Save(ms, Imaging.ImageFormat.Png)
            Dim image(ms.Length) As Byte
            image = ms.ToArray



            ClientSocket = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
            ClientSocket.Connect(_IpEndPoint)

            ClientSocket.Send(image, 0, image.Length, SocketFlags.None)

            ClientSocket.Shutdown(SocketShutdown.Both)

            ClientSocket.Close()


Je pense que c'est dû au send, j'ai vu qu'il existait le beginsend, quelle est la différence ?
Comment l'utiliser ?


Merci d'avance.
A voir également:

6 réponses

lsjduejd Messages postés 61 Statut Membre 15
 
3 ème up mais bon, je perds espoir.
2
MathieuB
 
UDP ou TCP?
0
lsjduejd Messages postés 61 Statut Membre 15
 
TCP.
0
lsjduejd Messages postés 61 Statut Membre 15
 
Quelqu'un ?
L'avantage d'un problème, c'est qu'il a sa solution.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lsjduejd Messages postés 61 Statut Membre 15
 
Personne ?
0
rovagasy
 
fait un boucle!!
 Do
            i = soc.Receive(bytes)
            If i = 0 Then Exit Do
            writer.Write(bytes, 0, i)
         Loop
0