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 70 71 72
| #include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <unistd.h>
#define SOCKET_ERROR -1
#define SERVPORT 23
#define QUEUE_SIZE 10
typedef int SOCKET;
typedef struct sockaddr_in SOCKADDR_IN;
typedef struct sockaddr SOCKADDR;
#include<stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#define buffer_size 100
int main (void){
SOCKET servsock, clisock;
SOCKADDR_IN servaddr, cliaddr;
int addrsize = (int) sizeof cliaddr;
int sock,sock_err,one;
servsock = socket (AF_INET, SOCK_STREAM, 0);
if(servsock<0)
{
perror("socket failed()\n");
exit(-1);
}
setsockopt(servsock, SOL_SOCKET, SO_REUSEADDR, (char *)&one, sizeof(one));
memset((char*)&servaddr,0,sizeof(servaddr));
servaddr.sin_addr.s_addr= htonl (INADDR_ANY);
servaddr.sin_family= AF_INET;
servaddr.sin_port= htons (SERVPORT);
//error case
if((sock_err = bind (servsock, (SOCKADDR *) &servaddr, sizeof servaddr))<0)
{
perror("bind()failed\n");
close(servsock);
exit(-1);
}
if((sock_err = listen (servsock, QUEUE_SIZE))<0)
{
perror("listen failed()\n");
close(servsock);
exit(-1);
}
printf("serveur en attente de connexion...\n");
memset((char *)&cliaddr,0,sizeof(cliaddr));
cliaddr.sin_addr.s_addr= htonl(SERVPORT);
cliaddr.sin_family= AF_INET;
cliaddr.sin_port= htons(SERVPORT);
if((clisock=accept(servsock,(SOCKADDR *) &cliaddr, &addrsize))<0)
{
perror("accept()failed\n");
close(servsock);
}
printf("client connecté\n");
char b1[]="bienvenue sur ";
sock_err = send(clisock, b1, sizeof(1), 0);
if (sock_err != SOCKET_ERROR) printf("Chaine envoy�e : %s\n", b1);
char b2[]="le forum ";
sock_err = send(clisock, b2, sizeof(b2), 0);
if (sock_err != SOCKET_ERROR) printf("Chaine envoy�e : %s\n", b2);
char b3[]="de developpez ";
sock_err = send(clisock, b3, sizeof(b3), 0);
if (sock_err != SOCKET_ERROR) printf("Chaine envoy�e : %s\n", b3);
close(servsock);
return EXIT_SUCCESS;
} |
Partager