Les sockets
La socket comme extrémité de communication, le flux TCP et les datagrammes UDP, les appels du serveur (socket, bind, listen, accept) et du client (socket, connect), send et recv, sendto et recvfrom, et l'ordre des octets du réseau.
- 31 cartes
- 5 thèmes
- Gratuit
Le programme, thème par thème
Le poids de chaque thème suit celui que lui donne l'examen.
- Notions
- Questions
- Ranger et relier
- Les chiffres
- Sur le schéma
Quelques cartes du deck
Socket : de quoi s'agit-il ?
Voir la réponse
Extrémité de communication manipulée par un descripteur, repérée par une adresse IP, un numéro de port et un protocole de transport.
Comme un fichier ou un tube, on la lit et on l'écrit avec des descripteurs. Elle s'obtient avec
socket(AF_INET, SOCK_STREAM, 0)pour TCP etSOCK_DGRAMpour UDP.Que faut-il écrire à la place du point d'interrogation pour lire ce que le client a envoyé ?
```c
int ecoute = socket(AF_INET, SOCK_STREAM, 0);
bind(ecoute, (struct sockaddr *)&adresse, sizeof adresse);
listen(ecoute, 5);
int client = accept(ecoute, NULL, NULL);
char buf[100];
ssize_t n = recv(?, buf, sizeof buf, 0);`clientecouteecoute, après un second accept0, l'entrée standard du serveur
Voir la réponse
clientaccepta renduclient, la socket de service pour cet échange. La socket d'écoute ne sert qu'à accepter les connexions : y appelerrecvdonne l'erreur « Transport endpoint is not connected ».Côté serveur TCP, l'ordre des appels est socket, …, …, … ; le client, lui, enchaîne socket puis connect.
Voir la réponse
Côté serveur TCP, l'ordre des appels est socket, bind, listen, accept ; le client, lui, enchaîne socket puis connect.
bindfixe l'adresse locale,listenouvre la file d'attente,accepten retire un client. Le client n'appelle pasbind: le système lui donne un port éphémère.