Sommaire: Cours système et réseaux
Les sockets d’Unix BSD
Utilisation des sockets
Client X-Windows
Serveur X-Window
Serveur HTTP
Datagrammes
♣ Extrait du cours
Adresses réseau (soc kets)
Domaine AF_UNIX : nom de fichier
#include <sys/socket.h>
#include <sys/un.h>
struct sockaddr_un {
short sun_family;
char sun_path[104];
};
Domaine AF_INET : adresse IP + numero deport
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
struct in_addr {
unsigned long s_addr;
};
struct sockaddr_in {
short sin_family;
u_short sin_port;
struct in_addr sin_addr;
char sin_zero[8];
};
Les sockets d’Unix BSD
Apparu sur Unix BSD4.2 (Leffler , etc.)
– T ransparence (local ou distant unifie)
– Efficacite
– Compatibilite (programmes existants)
socket : crée un descripteur
– Domaine (AF_UNIX, AF_INET)
– T ype (SOCK_DGRAM, SOCK_STREAM)
– Protocole ( en général)
bind : associe le descripteur a un por t (ports reserves au super-utilisateur)
listen : taille de la file d’attente
accept : accepte les connections
connect : connecte a un serveur
Utilisation des sockets (client)
fd = socket(domaine, type, protocole);
connect(fd, addresse_serveur,
longueur_adresse_serveur);
write(fd, commande, longueur_commande);
longueur_resultat =
read(fd, resultat, max_longueur_resultat);
close(fd);