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 62 63 64 65
| #include <stdio.h>
#include <winsock2.h>
int main()
{
WSADATA wsaData;
if (WSAStartup(MAKEWORD(2, 0), &wsaData) != 0)
printf("La fonction WSAStartup a echoue.\n");
else
{
SOCKET s_server;
printf("Creation du server .");
s_server = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
if (s_server == INVALID_SOCKET)
printf("La fonction socket a echoue.\n");
else
{
SOCKADDR_IN server;
ZeroMemory(&server, sizeof(server));
server.sin_family = AF_INET;
server.sin_addr.s_addr = htonl(INADDR_ANY);
server.sin_port = htons(3500);
if (bind(s_server, (SOCKADDR *)&server, sizeof(server)) == SOCKET_ERROR)
printf("La fonction bind a echoue.\n");
else
{
if (listen(s_server, 0) == SOCKET_ERROR) /* listen : commencer l'ecoute */
printf("La fonction listen a echoue.\n");
else
{
SOCKET s_client;
SOCKADDR_IN client;
int csize = sizeof(client);
s_client = accept(s_server, (SOCKADDR *)&client, &csize);
if (s_client == INVALID_SOCKET)
printf("La fonction accept a echoue.\n");
else
{
char buffer[100];
printf("Le client %s s'est connecte !\n", inet_ntoa(client.sin_addr));
send(s_client, "Bonjour", (int)strlen("Bonjour") + 1, 0);
recv(s_client, buffer, sizeof(buffer), 0);
printf("%s\n", buffer);
closesocket(s_client);
}
}
}
closesocket(s_server);
}
WSACleanup();
}
return 0;
} |
Partager