Bonjour,
Je viens de créer mon premier code utilisant les sockets (presque entièrement pompé sur le tuto de The Walrus) et celui ci ne fonctionne pas :-(
Voici le code client :
Et le serveur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 #include <iostream> #include <winsock2.h> int main() { WSADATA WSAData; WSAStartup(MAKEWORD(2,0), &WSAData); SOCKET sock; SOCKADDR_IN sin; char *buffer = new char[255]; sock = socket(AF_INET, SOCK_STREAM, 0); sin.sin_addr.s_addr = inet_addr("127.0.0.1"); sin.sin_family = AF_INET; sin.sin_port = htons(4148); connect(sock, (SOCKADDR *)&sin, sizeof(sin)); recv(sock, buffer, sizeof(buffer), 0); closesocket(sock); WSACleanup(); std::cout << buffer[0] << std::endl; system("PAUSE"); }
Je lance les 2 programmes sur ma machine (en commençant par le seveur) et la chaine que le client doit afficher est remplacée par d'autres caractères (toujours les mêmes).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 #include <winsock2.h> int main() { WSADATA WSAData; WSAStartup(MAKEWORD(2,0), &WSAData); SOCKET sock; SOCKET csock; SOCKADDR_IN sin; SOCKADDR_IN csin; sock = socket(AF_INET, SOCK_STREAM, 0); sin.sin_addr.s_addr = INADDR_ANY; sin.sin_family = AF_INET; sin.sin_port = htons(4147); bind(sock, (SOCKADDR *)&sin, sizeof(sin)); listen(sock, 0); for(;;) { int sinsize = sizeof(csin); if((csock = accept(sock, (SOCKADDR *)&csin, &sinsize)) != INVALID_SOCKET) { send(csock, "Hello world!\r\n", 14, 0); } } }
Je ne trouve pas mon erreur.
Merci![]()
Partager