Envoi d'image socket - VB.NET

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.
--
L'avantage d'un problème, c'est qu'il a sa solution.

6 réponses

  • Votes
  • Date
  • Date décroissante
  1. 3 ème up mais bon, je perds espoir.
    1. Quelqu'un ?
      L'avantage d'un problème, c'est qu'il a sa solution.
      1. fait un boucle!!
         Do
                    i = soc.Receive(bytes)
                    If i = 0 Then Exit Do
                    writer.Write(bytes, 0, i)
                 Loop