Envoi d'image socket - VB.NET

Fermé
lsjduejd Messages postés 60 Date d'inscription mercredi 3 mars 2010 Statut Membre Dernière intervention 16 juillet 2012 - 2 févr. 2011 à 19:41
 rovagasy - 15 déc. 2013 à 09:45
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 60 Date d'inscription mercredi 3 mars 2010 Statut Membre Dernière intervention 16 juillet 2012 15
6 févr. 2011 à 20:42
3 ème up mais bon, je perds espoir.
2
UDP ou TCP?
0
lsjduejd Messages postés 60 Date d'inscription mercredi 3 mars 2010 Statut Membre Dernière intervention 16 juillet 2012 15
3 févr. 2011 à 19:44
TCP.
0
lsjduejd Messages postés 60 Date d'inscription mercredi 3 mars 2010 Statut Membre Dernière intervention 16 juillet 2012 15
Modifié par lsjduejd le 6/02/2011 à 20:42
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 60 Date d'inscription mercredi 3 mars 2010 Statut Membre Dernière intervention 16 juillet 2012 15
5 févr. 2011 à 12:32
Personne ?
0
fait un boucle!!
 Do
            i = soc.Receive(bytes)
            If i = 0 Then Exit Do
            writer.Write(bytes, 0, i)
         Loop
0