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 73 74 75
|
/***********************************SERVEUR TCP**********************************/
#include<stdio.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<netdb.h>
#include<unistd.h>
#include<stdlib.h>
#define PORTS 2058
main()
{
int namelen, sock, nsock;
char buf[20];
struct sockaddr_in adr_s, adr_c;
int lg, n, pid;
int bindReturn;
int listenReturn;
int acceptReturn;
/* Cr�ation socket */
sock = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
printf("Voici le Socket : %d\n", sock);
/* Attachementsocket */
/**************************************************************************************/
/* Server address */
/**************************************************************************************/
/*construit_adresse_locale (&adr_c, 0); */
adr_s.sin_family = htons(AF_INET);
adr_s.sin_addr.s_addr = htonl(INADDR_ANY);
adr_s.sin_port = htons(PORTS);
bindReturn = bind(sock, (struct sockaddr*)&adr_s, sizeof(adr_s));
printf("Voici le bind : %d\n", bindReturn);
listenReturn = listen(sock,5);
printf("Voici le listen : %d\n", listenReturn);
/* Boucle d'acceptation d'une connexion */
while(1==1)
{
/* Attente de question sur la socket */
lg= sizeof(adr_c);
nsock= accept (sock, (struct sockaddr*)&adr_c, &lg);
pid= fork();
if (pid== 0)
{
close (sock);
read (nsock, buf, 20);
printf("%s\n",buf);
/*Ici on obtient un chiffres qui ne ressemble pas à une adresse IP*/
printf("%d\n", inet_ntoa((struct sockaddr*)&adr_c));
close (nsock);
exit(0);
}
}
} |
Partager