xankow
Messages postés10Date d'inscriptionmardi 17 juin 2008StatutMembreDernière intervention 8 juillet 2008
-
7 juil. 2008 à 17:31
dahlianoir21
Messages postés3Date d'inscriptiondimanche 24 décembre 2000StatutMembreDernière intervention27 mai 2009
-
27 mai 2009 à 17:56
Bonjour,
je suis actuellement en train de faire un serveur qui envoie des messages tres courts et tres raprochés (dans le temps).
Le probleme c'est que windows met mes messages dans un buffer et n'envoie qu'une seule trame comprenant tous mes messages. Mes clients sont des robots, ils sont incapables de redecouper la trame. Ils executent le premier message puis vident leurs buffers. Donc mes autres messages sont perdus.
C'est l'algo de Nagle qui veut ca. Normalement ca peut etre evité en utilisant la commende NO_DELAY. Mais je travaille sous visual studio avec le framework 1.1 et avec des sokets en TCP.
Liverion
Messages postés296Date d'inscriptionmardi 22 avril 2008StatutMembreDernière intervention18 août 2008 8 juil. 2008 à 10:44
Attention, je n'y connais pas grand chose, je vais ptet proposer un truc idiot, mais est-ce que ca serait pas possible pour toi de femer la connexion après chaque trame pour l'obliger a realiser son envoi, puis la rouvrir avant la trame suivante ? Meme si je pense que tu perdrais en rapidité.
~~
Les trois lois de Codes-Sources :
Loi 1) Tu lis et respectes le reglement
Loi 2) Tu penses à valider si une reponse apportée à ton problème t'a aidé
Loi 3) Si tu ne respectes pas les 2 premières ....TU SORS !!
xankow
Messages postés10Date d'inscriptionmardi 17 juin 2008StatutMembreDernière intervention 8 juillet 2008 8 juil. 2008 à 10:50
Salut,
ta solution a ete etudiée, et elle me fait perdre un peu de temps c'est vrai. Mais le principal probleme vient du fait que j'ai plusieurs clients. Ca devient tres difficile d'ecrire a un client en particulier et de l'identifier si son socket change a chaque message.
Je prefererai pouvoir deconnecter l'algo de Nagle.