Bonjour,
J'ai programmé un clent/serveur très basic (hello world) avec les sockets. La communication entre le client et le serveur fonctionne sur un même machine (127.0.0.1) et en réseau local mais pas sur internet.
Voici mon code :
client :
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
22 #include <stdio.h> #include <winsock2.h> int main() { WSADATA WSAData; WSAStartup(MAKEWORD(2,0), &WSAData); SOCKET sock; SOCKADDR_IN sin; char buffer[255]; sock = socket(PF_INET, SOCK_STREAM, 0); sin.sin_addr.s_addr = inet_addr("127.0.0.1"); sin.sin_family = AF_INET; sin.sin_port = htons(4147); connect(sock, (SOCKADDR *)&sin, sizeof(sin)); recv(sock, buffer, sizeof(buffer)-1, 0); closesocket(sock); WSACleanup(); printf("%s", buffer); system("PAUSE"); }
Je ne sais pas si il y a un rapport mais j'ai un routeur (côté client).
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(PF_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", 15, 0); } } }
Merci![]()
Partager