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
| #include <sys/types.h>
#include <sys/socket.h>
#include <stdio.h>
#define PORT_SERV 23456
#define ADDR_SERV "192.168.239.245"
int main ()
{
int err;
// l'identifiant de la socket client
int socket_serveur;
int socket_client;
int msg;
// l'adresse de la socket serveur
struct sockaddr addr_serveur = {AF_INET,htons(PORT_SERV), htonl(ADDR_SERV)};
//l'adresse de la socket client
struct sockaddr addr_client;
int socket_client_taille;
//------------------------------------------
// on crée une socket et on recupère son descripteur. Les param :
//PF_INET,le domaine, signifie qu'on utilise IPv4
//SOCK_STREAM, pour dire qu'on envoye un flux
//0, mais on c'est deja que c'est du TCP
socket_serveur = socket(AF_INET, SOCK_STREAM, 0);
//------------------------------------------
// dans le cas du serveur il faut faire un bind
// identifiant de la socket
// adresse de la socket
// taille de l'adresse
bind(socket_serveur,&addr_serveur,sizeof(addr_serveur));
//------------------------------------------
// on attend une connection
// on attend 1 connection sur la socket serveur
listen(socket_serveur, 3);
//------------------------------------------
//on accepte une connection
// sur la socket serveur
// venant d'une addresse client
// de taille...
socket_client = accept(socket_serveur,&addr_client, &socket_client_taille);
printf("La socket du client : %d\n", socket_client);
//------------------------------------------
// on attend un message
// identifiant de la socket du client
// adresse pour recevoir le message
// taille de la zone de message
// des options
err = recv(socket_client,&msg, 4,0);
printf("\nOn a lu %d octect\n",err);
printf("\nLe message est le suivant : %d\n",msg);
//------------------------------------------
// on ferme la socket
close(socket_serveur);
return 0;
} |
Partager