Je suis entrain d’apprendre la programmation réseau sous Linux et j’ai commencé par les sockets.
Voici un code que j’ai trouvé dans le net et j’ai quelque question à poser.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
#include<sys/types.h>
#include<sys/socket.h>
#include<stdio.h>
#include<sys/un.h>
#include<unistd.h>
 
 
int main(){
 
		int sockfd_serveur , sockfd_client;
		int long_serveur,long_client;
		struct sockaddr_un adress_serveur;
		struct sockaddr_un adresse_client;
 
 
		//suppresion tout ancien socket
 
		unlink("socket_serveur");
 
		sockfd_serveur = socket(AF_UNIX , SOCK_STREAM,0);//af , type, protocol
		adress_serveur.sun.family=AF_UNIX;
		strcpy(adresse_serveur.sun_path,"socket_serveur");
		long_serveur=sizeof(adresse_serveur);
		bind(sockfd_serveur,(struct sockaddr *) & adresse_serveur,long_serveur);
		listen(sockfd_serveur,5);
		while(1){
			int l;
			printf("serveur att le client \a\n");
			long_client =sizeof(adress_client);
			sockfd_client=accept(sockfd_serveur,(struct sockaddr*)&adresse_client,&long_client);
 
		read(sockfd_client,& l,1);
		l--;
		write(sockfd_client,& l , 1),
			close(sockfd_client);
		}
}
1 -Ca sert a quoi AF_UNIX
2 – ca sert a quoi de savoir la tailles de l’adresse serveur
3 – a quoi sert la fonction bind et qu’elles sont ses champs
4 – a quoi sert la fonction listen ?
5 -Elle contient quoi la biblio <sys/un.h>