Bonjour,

Je veux faire une communication entre client/serveur, j'utilise les sockets avec des petit fichier ça marche mais avec des grand fichiers j'avais des problèmes, le client qui veux envoyer le fichier je lu le fichier en bytes apres je découpe mon fichier par partie de 20 ko, et je costruit mon paquet et j'envoie le paquet quand le serveur reçois le paquet, il ecrit dans le fichier mais ça bloque des fois dans le 3 paquet, defois dans le 11 paquets, je sais pas est ce que ma consuption est vrais???
pour le client voici le code client :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 IPAddress[] ipAddress = Dns.GetHostAddresses("localhost");
                IPEndPoint ipEnd = new IPEndPoint(ipAddress[0], 5656);
                Socket clientSock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                 byte[] fileData = File.ReadAllBytes(filePath + fileName);
apres je découpe le filedataen paquets
et pour l'envoie
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
          fileNameLen.CopyTo(clientData, 0);
                    fileNameByte.CopyTo(clientData, 4);
                    fileData1.CopyTo(clientData, 4 + fileNameByte.Length);
 
                      clientSock.Connect(ipEnd);
                      clientSock.Send(clientData);
                      clientSock.Close();
Pour le serveur :
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
 while (true)
                {                
                    clientSock = sock.Accept();
 
                    int receivedBytesLen = clientSock.Receive(clientData);
                    curMsg = "Receiving data...";
 
                    int fileNameLen = BitConverter.ToInt32(clientData, 0);
                    string fileName = Encoding.UTF8.GetString(clientData, 4, fileNameLen);
 
                    BinaryWriter bWrite = new BinaryWriter(File.Open(receivedPath + "/" + fileName, FileMode.Append)); ;
                    bWrite.Write(clientData, 4 + fileNameLen, receivedBytesLen - 4 - fileNameLen);
 
                    curMsg = "Saving file...";
 
                    bWrite.Close();
                    clientSock.Close();    
                 }
Merci l’équipe.