Bonjour,
Je développe un serveur UDP en utilisant les fonctions WSA* de la lib winsock.
Après avoir créer la socket (WSASocket) et la binder comme il faut, je suis face à un problème concernant la fonction WSARecvFrom, voici son implémentation :
Le problème vient de la valeur de retour, j'obtiens constamment le code erreur WSAENOBUFS (10055) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 WSARecvFrom( sock_, &dataBuff, 1, &bytesRecv, &flags, (SOCKADDR *)&senderAddr, &senderAddrSize, &overLapped, NULL );
Or, je pense avoir bien déclaré le buffer de réception (dataBuff) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 No buffer space available. An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full.
J'ai lu quelque part que cette erreur apparaissait si le port bindé dépassé la valeur 5000 mais j'utilise le port 1234 et même résultat...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 WSABUF dataBuff; const int buffLen = DATA_SIZE; char buff[DATA_SIZE]; dataBuff.len = buffLen; dataBuff.buf = buff;
Merci pour votre patience et de l'aide que vous pourrez m'apporter.
Partager