Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3169 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  taille tampon fonction recv socket

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

taille tampon fonction recv socket

n°2040664
Glock 17Pr​o
Posté le 08-12-2010 à 09:10:28  profilanswer
 

Bonjour,
 
Quelle taille faut-il utiliser dans la focntion recv d'une socket ?
plus précisement sur quel critère se basé pour choisir entre 512ko 1024ko 1Mo etc ..
 
Merci


---------------
.
mood
Publicité
Posté le 08-12-2010 à 09:10:28  profilanswer
 

n°2040702
olivthill
Posté le 08-12-2010 à 11:28:10  profilanswer
 

512 ko parait déjà bien. Moi, je n'utilise que 32 ko, et les transferts sont rapides même pour des fichiers de plusieurs centaines de ko. Je n'ai pas pris une taille trop grande, car j'ai remarqué que mes fichiers arrivent souvent en petits morceaux, et que le cas de gros morceaux est rare (je fais de l'UDP sur un réseau local). De plus, si réserve une taille trop grande, cela risque de prendre trop de ressources mémoire pour ce module de transfert qui en a peut-être moins besoin que d'autres programmes qui tournent sur le même serveur.
 
Vous pouvez faire des tests avec différentes tailles, et voir si ça change quelque chose.

n°2040706
Glock 17Pr​o
Posté le 08-12-2010 à 11:38:55  profilanswer
 

Merci pour ta réponse, mais si possible j'aurais vraiment besoin d'une réponse plus précise techniquement svp


Message édité par Glock 17Pro le 08-12-2010 à 11:39:22

---------------
.
n°2041496
tartopron
Tarte... au pron !
Posté le 11-12-2010 à 12:50:05  profilanswer
 

65536 octets est la taille maximale d'un paquet IPV4 moins la taille du Header.
Mais le standard est de 1500 octets : le MTU de l'Ethernet.
 
cf Wiki
 
Attention tu peux en recevoir plusieurs d'un seul coup si tu ne read pas tout le temps.


Message édité par tartopron le 11-12-2010 à 12:52:18

---------------
Return -1
n°2041504
Glock 17Pr​o
Posté le 11-12-2010 à 13:21:35  profilanswer
 

j'utilise une socket synchrone bloquante j'imagine donc que je lis tout le temps, utiliser un tampon supérieur à (65536 + la taille du header) semble donc INUTILE ?


---------------
.
n°2042815
Taz
bisounours-codeur
Posté le 17-12-2010 à 10:36:25  profilanswer
 

Osef de la MTU.
Tout dépend de combien tu t'attends à recevoir.
En gigabit, tu peux recevoir quasiment 100Mo/s, donc un buffer de 1Mo pour une application rapide, ça ne me choquerait presque pas. Après c'est vraiment à voir, tu peux t'amuser à grossir tant qu'il t'es rempli complètement.
 
Par contre, si tu t'amuses à lire des lignes de texte, quelque ko ça suffit.
 
Dans tous les cas, le système reçoit indépendamment de ce que tu demandes. Le tampon du recv, c'est la taille du tampon dans lequel tu demandes au noyau de t'y recopier ce qui est arrivé.
C'est à dire que tu ne vas pas bloquer indéfiniment sur ton recv jusqu'à qu'il y ait la quantité que tu demandes.
 
A part économiser quelques appels systèmes il n'y a pas grand chose à gagner. Au mieux essayer d'avoir un multiple de 4Ko (taille de page), sinon, ça n'a pas une très grande importance.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  taille tampon fonction recv socket

 

Sujets relatifs
Problème fonction strlen /ubuntu[Resolu] Socket Avoir une IP depuis un Nom de site
Taille max de tableau en VBAProbleme taille de log oracle
[SQLServer] appel de fonction avec un déclencheur sql server 2008[C++] Récupérer la taille d'un fichier binaire
modifier taille de page web afin qu'elle s'adapte au navigateurRécuperer objet dans tableau en fonction du champ d'un objet
Fichier PAC et fonction myIpAddress[VBA] Créer une fonction utilisée en tant que formule
Plus de sujets relatifs à : taille tampon fonction recv socket


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR