Bonjour,
Je cherche des explications sur le comportement des fonction send et recv.
Dans un modèle de communication IPC par socket, est-ce normal qu'un appel à send soit bloquant si aucun appel à recv n'est réalisé ?
Par exemple, j'ai un processus Serveur qui boucle sur l'envoie d'une donnée de 6Mo et un processus client qui crée la connection mais ne fait aucun appel à recv.
J'observe que le 1er appel à send fonctionne et met ~7ms, mais le second appel à send est bloquant. Est-ce le fonctionne logique d'une socket TCP/IP ? Faut-il obligatoirement faire des appels à recv pour vider le buffer de la socket
et permette au send de transmettre de nouvelles données ?
Est-il possible de paramétrer la taille du buffer de la socket au niveau de l'OS ?
Est-il préférable de faire 1 seul appel à recv pour lire les 6Mo de données, ou est-il préférable de faire plusieurs appel à recv avec des blocs de données plus petits (64Ko, 256Ko...) ?
Merci
Partager