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
|
#ifdef WIN32
#include <winsock2.h>
#else
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#define INVALID_SOCKET -1
#define SOCKET_ERROR -1
#define closesocket(param) close(param)
typedef int SOCKET;
typedef struct sockaddr_in SOCKADDR_IN;
typedef struct sockaddr SOCKADDR;
#endif
#include <stdio.h>
#include <stdlib.h>
int main (void)
{
int ret;
#if defined (WIN32)
WSADATA wsa_data;
int err = WSAStartup (MAKEWORD (2, 2), &wsa_data);
if (!err)
{
puts ("WIN: winsock2: OK");
#else
int err;
#endif
SOCKET sock;
sock = socket (AF_INET, SOCK_STREAM, 0);
SOCKADDR_IN sin;
sin.sin_addr.s_addr = htonl (INADDR_ANY);
sin.sin_family = AF_INET;
sin.sin_port = htons (23);
bind (sock, (SOCKADDR *) & sin, sizeof sin);
listen (sock, 5);
int taille = (int) sizeof (sin);
accept (sock, (SOCKADDR *) & sin, &taille);
printf ("quelqu'un vient de se conecter\n");
closesocket (sock);
#if defined (WIN32)
WSACleanup ();
}
#endif
if (err)
{
ret = EXIT_FAILURE;
}
else
{
ret = EXIT_SUCCESS;
}
return ret;
} |