Bonsoir a tous,
j'ai quelque problème d'envoi / réception de structure par socket.
struct SocketStruct
{
char _type;
char _buffer[1024];
unsigned int _send;
};
En fait ca plante lors de transfert de fichier, a un moment dans unsigned int on a une valeur de l'ordre de 10^5 (je fait un new char[] sur cette valeur du coup segfault bien entendu).
ca arrive rarement en local (souvent a distance !)
voila ma fonction de réception :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 void SocketTcpServer::Receive(void *Data, unsigned int Size) { int ret; DWORD dwBytesRet, dwFlags; WSABUF wbuf; wbuf.len = Size; wbuf.buf = (char *)Data; dwFlags = 0; ret = WSARecv(this->_socket, &wbuf, 1, &dwBytesRet, &dwFlags, NULL, NULL); if (ret == 0) return ; throw Exception("SocketTcpSever", "Error WSARecv"); }
Merci d'avance.
Cordialement,
NeoKript
Partager