gilou Modérateur Modzilla | Si ceci fonctionne:
Code :
- #include <stdio.h>
- #include <winsock2.h>
- #include <windows.h>
- #pragma comment(lib, "ws2_32.lib" )
- void main(void)
- {
- SOCKET c,c1;
- SOCKADDR_IN to, to1;
- WSADATA wsa;
- WORD v;
- int i;
- char buf[] = "test test";
- //Windows socket init//
- v = MAKEWORD(2, 0);
- if(WSAStartup(v, &wsa) != 0)
- exit(EXIT_FAILURE);
- ///////////////////////
- //Socket//
- c = socket(AF_INET, SOCK_DGRAM, 0);
- c1 = socket(AF_INET, SOCK_DGRAM, 0);
- to.sin_family = AF_INET;
- to1.sin_family = AF_INET;
- to.sin_addr.s_addr = inet_addr("192.168.0.1" );
- to1.sin_addr.s_addr = inet_addr("192.168.0.2" );
- to.sin_port = htons(1989);
- to1.sin_port = htons(1989);
- sendto(c, buf, sizeof(buf), 0, (LPSOCKADDR)&to, sizeof(to));
- sendto(c1, buf, sizeof(buf), 0, (LPSOCKADDR)&to1, sizeof(to1));
- closesocket(c);
- closesocket(c1);
- WSACleanup();
- return;
- }
|
Alors, ca peut en effet etre du a un réemploi de la socket ou de la structure SOCK_ADDR, avant qu'elle ait fini d'envoyer ce qu'elle a a envoyer (auquel cas, ce devrait etre ta 2e machine seulement qui devrait recevoir correctement le message). Essayes alors de tenir compte d'un parametre SO_LINGER dans les options de la socket.
De toute façon, les codes d'erreurs de sendto dans ton source initial devraient permettre de savoir ou est le pb, une fois décriptés avec WSAGetLastError. A+, Message édité par gilou le 19-04-2003 à 10:33:38 ---------------
There's more than what can be linked! -- Iyashikei Anime Forever! -- AngularJS c'est un framework d'engulé! --
|