Lors de l'envoi de deux messages UDP à un ordinateur sous Windows 7, il semble que parfois le premier message ne soit pas envoyé du tout. Quelqu'un d'autre a-t-il vécu cela?Message de socket parfois non envoyé sous Windows 7/2008 R2
Le code de test ci-dessous illustre le problème sur ma machine. Lorsque j'exécute le programme de test et que j'observe tout le trafic UDP à 10.10.42.22, je vois que le second message UDP est envoyé, mais le premier message UDP n'est pas envoyé. Si je réexécute immédiatement le programme, les deux messages UDP sont envoyés.
Il n'échoue pas à chaque fois, mais cela arrive généralement si j'attends quelques minutes avant de recommencer le test.
#include <iostream>
#include <winsock2.h>
int main()
{
WSADATA wsaData;
WSAStartup(MAKEWORD(2,2), &wsaData);
sockaddr_in addr;
addr.sin_family = AF_INET;
addr.sin_port = htons(52383);
addr.sin_addr.s_addr = inet_addr("10.10.42.22");
SOCKET s = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
if (sendto(s, "TEST1", 5, 0, (SOCKADDR *) &addr, sizeof(addr)) != 5)
std::cout << "first message not sent" << std::endl;
if (sendto(s, "TEST2", 5, 0, (SOCKADDR *) &addr, sizeof(addr)) != 5)
std::cout << "second message not sent" << std::endl;
closesocket(s);
WSACleanup();
return 0;
}
Est-ce que le premier message n'est pas envoyé lorsque le problème survient? – sje397
Non, sendto renvoie toujours le succès. – briangreenery