Deaddy | Code :
- #include <stdio.h>
- #include <winsock2.h>
- #include <windows.h>
- #pragma comment(lib, "wsock32.lib" )
- void main(void)
- {
- SOCKET c;
- SOCKADDR_IN to,here;
- WSADATA wsa;
- WORD v;
- int sizePeerAddr = sizeof(to);
- char ip[50];
- char buf[] = "ping";
- char rec[1024];
- int r,s;
- fd_set f;
- struct timeval ti;
- /*Socket*/
- v = MAKEWORD(2, 0);
- if(WSAStartup(v, &wsa) != 0) exit(EXIT_FAILURE);
- c = socket(AF_INET, SOCK_DGRAM, 0);
- here.sin_addr.s_addr=INADDR_ANY;
- here.sin_port=htons(/*a toi de voir*/);
- here.sin_family=to.sin_family = AF_INET;
- to.sin_port = htons(1002);
- if (bind(s,(sockaddr*)&here,sizeof(here))<0) { perror("bind" );exit(-1);}
- ti.tv_sec=1; // 1 seconde
- do
- {
- scanf("%s",ip);
- to.sin_addr.s_addr = inet_addr(ip);
- s= sendto(c, buf, sizeof(buf), 0, (LPSOCKADDR)&to, sizeof(to));
- printf("%d octets envoyés\n",s);
- FD_ZERO(&f);
- FD_SET(c,&f);
- if (select(FD_SETSIZE,&f,NULL,NULL,&ti))
- {
- r = recvfrom(c, rec, sizeof(rec), 0, (LPSOCKADDR)&to, &sizePeerAddr);
- printf("%d octets recus\n",r);
- }
- else pritnf("TIMEOUT\n" );
- } while (1);
- closesocket(c);
- WSACleanup();
- }
|
(j'ai rien testé) |