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

6 réponses

  1. lsjduejd Messages postés 61 Statut Membre 15
     
    3 ème up mais bon, je perds espoir.
    2
  2. lsjduejd Messages postés 61 Statut Membre 15
     
    TCP.
    0
  3. lsjduejd Messages postés 61 Statut Membre 15
     
    Quelqu'un ?
    L'avantage d'un problème, c'est qu'il a sa solution.
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

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