Réponse acceptée !
serveur.c
#include <stdio.h> #include <winsock2.h>
int main(int argc, char *argv[]) { WSADATA wsa; WSAStartup(MAKEWORD(2,0), &wsa); SOCKADDR_IN sin = {0}; SOCKET sock; sock = socket(AF_INET, SOCK_STREAM, 0); sin.sin_addr.s_addr = htonl(INADDR_ANY); sin.sin_family = AF_INET; sin.sin_port = htons(125); bind(sock, (SOCKADDR*)&sin, sizeof(sin)); listen(sock, 2); SOCKADDR_IN csin = {0}; int size = sizeof(csin); SOCKET csock; csock = accept(sock, (SOCKADDR*)&csin, &size); char buffer[50]; int x = 1; int error; int buf = 0; do { fgets(buffer, sizeof(buffer), stdin); send(csock, buffer, strlen(buffer), 0); do { buffer[buf] = '\0'; buf++; }while(buf == 50); error = recv(csock, buffer, sizeof(buffer), 0); if(error != SOCKET_ERROR) { buffer[error] = '\0'; printf("%s", buffer); } do { buffer[buf] = '\0'; buf++; }while(buf == 50); }while(x); shutdown(csock, 2); closesocket(csock); closesocket(sock); WSACleanup(); }
client.c
#include <stdio.h> #include <winsock2.h>
int main(int argc, char *argv[]) { WSADATA wsa; WSAStartup(MAKEWORD(2,0), &wsa); SOCKADDR_IN sin = {0}; SOCKET sock; 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(125); connect(sock, (SOCKADDR*)&sin, sizeof(sin)); char buffer[50]; int x = 1; int error; int buf = 0; do { error = recv(sock, buffer, sizeof(buffer), 0); if(error != SOCKET_ERROR) { buffer[error] = '\0'; printf("%s", buffer); } do { buffer[buf] = '\0'; buf++; }while(buf == 0); fgets(buffer, sizeof(buffer), stdin); send(sock, buffer, strlen(buffer), 0); do { buffer[buf] = '\0'; buf++; }while(buf == 0); }while(x); closesocket(sock); WSACleanup(); }
|