1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
char clnt[1024];
char buf[1024];
WORD wVersionRequested;
WSADATA wsaData;
wVersionRequested = MAKEWORD(2, 0);
if (WSAStartup(wVersionRequested, &wsaData))
{
MessageBox(FindWindow(NULL,""),"Erreur WSAStartup","Erreur",MB_ICONSTOP);
return 2;
}
SOCKET s;
s = socket(AF_INET,SOCK_DGRAM,0);
if(s==INVALID_SOCKET)
{
MessageBox(FindWindow(NULL,""),"Erreur Socket","Erreur",MB_ICONSTOP);
return 2;
}
SOCKADDR_IN sain;
sain.sin_family = AF_INET;
sain.sin_port = htons(atoi(strPort));
sain.sin_addr.s_addr = inet_addr(strIp);
if(connect(s, (SOCKADDR *)&sain, sizeof(sain))==SOCKET_ERROR)
{
MessageBox(FindWindow(NULL,""),"Impossible de se connecter au serveur","Erreur",MB_ICONSTOP);
return 2;
}
strcpy(clnt,"\xFF\xFF\xFF\xFF\x02getstatus\x0a\x00" );
if(send(s, clnt, strlen(clnt), 0)==SOCKET_ERROR)
{
MessageBox(FindWindow(NULL,""),"Impossible de transmettre la requète","Erreur",MB_ICONSTOP);
return 2;
}
recv(s,buf,strlen(buf),MSG_PEEK);
// Le contenu des infos est dans buf
//MessageBox(FindWindow(NULL,""),buf,"",MB_ICONSTOP);
// On appelle la fonction de tri
TrieInfos(buf, TabSettings, TabJoueurs);
if(closesocket(s)==SOCKET_ERROR)
return 2;
WSACleanup(); |