1. Appels système
Un nouvel appel système, sys_recvmmsg(), complète l'API des sockets. Il permet de recevoir plusieurs messages en un seul appel au noyau depuis l'espace utilisateur. Il en résulte un gain de performance important (réduction du nombre de changements de contexte et réduction du nombre d'opérations d'entrée et de sortie dans la pile réseau) pour les applications réseau profitant d'une grosse bande passante. L'interface est la suivante :
ssize_t recvmmsg(int sockfd, struct mmsghdr *mmsg, unsigned int vlen,
unsigned int flags, struct timespec *timeout)
struct mmsghdr {
struct msghdr msg_hdr;
unsigned msg_len;
};
À comparer à l'appel système qui n'attend qu'un seul message :
ssize_t recvmsg(int sockfd, struct msghdr *msg, int flags);
Remarquons tout particulièrement l'ajout du paramètre timeout, qui permet d'associer une échéance à la réception des messages (ou un retour direct si ce paramètre est positionné à...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première