Nous utilisons .Net et les sockets. Le serveur utilise la méthode Socket.Sender (bytes []) pour envoyer uniquement la charge utile complète. De l'autre côté, nous sommes des clients qui consomment les données. Socket.Receive (tampon []). Dans tous les exemples de Microsoft (et d'autres), ils semblent coller avec une taille de tampon de 8192. Nous avons utilisé cette taille mais de temps en temps nous envoyons des données aux clients qui dépassent cette taille de tampon.Quelle est la taille de la mémoire tampon pour la programmation des sockets?
Existe-t-il un moyen de déterminer combien de données la méthode envoyée par le serveur nous a envoyée? Quelle est la meilleure taille de tampon?
Je voudrais augmenter la taille de la mémoire tampon si tout est possible. Nous étions en train d'envisager de faire 32K mais je m'inquiétais du scénario ci-dessus où je ne recevrais pas la commande receive même si je l'envoyais en un seul Send. – uriDium
Désolé j'ai oublié de mentionner que nous faisons cela en mode bloquant. Je ne le vois pas faire la différence cependant. – uriDium
@uriDium: Vous devez écrire votre code de manière à ce qu'il ne repose pas sur la réception de tout d'un seul envoi dans une réception. Ce n'est pas le modèle que TCP utilise - c'est un modèle * stream *. Si vous souhaitez segmenter ce flux en messages distincts, vous devez utiliser un délimiteur ou écrire un préfixe de longueur pour chaque message afin que le client sache lire. –