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 66 67 68 69
|
#include <winsock2.h>
#include <stdio.h>
int main (void)
{
//ACTIVATION WINSOCK
WSADATA WSAData;
int err = WSAStartup (MAKEWORD (2, 0), &WSAData);
if (err >= 0)
{
//DECLARATION DES VARIABLES
SOCKET sock = socket (AF_INET, SOCK_DGRAM, 0);
if (sock != INVALID_SOCKET)
{
SOCKADDR_IN sin = { 0 };
printf ("SRV : socket = %d\n", (int) sock);
sin.sin_family = AF_INET;
sin.sin_addr.s_addr = htonl (INADDR_ANY);
sin.sin_port = htons (1234);
err = bind (sock, (SOCKADDR *) & sin, sizeof sin);
if (err >= 0)
{
int end = 0;
printf ("*** serveur WIPAV lance ***\n");
//SERVEUR EN ATTENTE DE RECEPTION
while (!end)
{
SOCKADDR_IN csin;
int sinsize = sizeof (csin);
char buffer[50] = "";
int n;
printf ("En attente\n");
n = recvfrom (sock, buffer, sizeof buffer - 1, 0,
(SOCKADDR *) & csin, &sinsize);
if (n >= 0)
{
buffer[n] = 0;
printf ("%s\n", buffer);
}
else
{
printf ("SRV : recvfrom() error %d\n", n);
end = 1;
}
}
}
else
{
printf ("SRV : bind() error\n");
}
closesocket (sock);
printf ("SRV : socket %d closed\n", sock);
}
WSACleanup ();
}
else
{
printf ("WSA : error %d\n", err);
}
return 0;
} |
Partager