begin process at 2013 06 19 00:45:05
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Réseau & Internet

 > 

Sockets

 > 

c# vider le buffer


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

c# vider le buffer

lundi 7 juillet 2008 à 17:31:26 | c# vider le buffer

xankow

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.

J'ai vraiment besoin qu'une trame == un message.

Merci de votre aide.
mardi 8 juillet 2008 à 10:44:51 | Re : c# vider le buffer

Liverion

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 !!
mardi 8 juillet 2008 à 10:50:25 | Re : c# vider le buffer

xankow

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.

Merci de ton aide et de ton temps.
mardi 8 juillet 2008 à 14:23:35 | Re : c# vider le buffer

SharpMao

Membre Club
Hello,

Ca fait un moment que je n'ai plus travaillé avec des sockets, mais n'y a-t-il pas ne méthode Flush permettant de vider le buffer ?

Amicalement, SharpMao

"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)
mardi 8 juillet 2008 à 16:45:26 | Re : c# vider le buffer

xankow

Je crois pas que flush marche avec des Socket, c'est reservé au Stream.
non?
Si c'est pas le cas, je sais pas comment l'utiliser.
mercredi 27 mai 2009 à 17:56:43 | Re : c# vider le buffer

dahlianoir21

salut je pense ke flush marche avec les socket (en c) essaye flush(id_de_ta_socket) ,c'est fflush qui ne marche pas avec les sokets.m


Cette discussion est classée dans : buffer, messages, envoie, vider, trame


Répondre à ce message

Sujets en rapport avec ce message

Pile de message [ par taoetc ] Bonjour, j'aimerais savoir comment vider les piles de messages qu'il peut exister. Je connais le application.Doevents(); qui permet de traiter les mes Envoie de trame par port USB [ par stephanie701 ] Bonjour à tous,Je dois réaliser une application qui envoie une trame à un module (USB) pour le questionner s'il a la bonne adresse. Malheureusement je Comment vider le buffer clavier [ par oboudou ] Bonjour,J'aimerais savoir comment je peux vider le buffer clavier en C#. Je traite un événement clavier, et j'ai besoin de le vider à la fin de ma fon Client/Serveur Envoie de trame en hexadécimal [ par PROVB ] Bonjour, Je récupérer une source C# Serveur/Client, que j'ai transformé. Mon problème est lors de l'écriture dans un StreamWriter codé en Encoding.B stderr, stdin, stdout in C# [ par djtuner ] Bonjour, Je développe une bibliothèque de classe. J'aimerai avec des tests unitaires que lorsque je l'execute j'ai des messages de traces sur stderr trames [ par damieniut ] Bonjour, J'aurais voulu savoir si quelqu'un serait capable de m'expliquer la différence entre une trame Modbus et une trame OpenModbus. Cordialement, Comment vider un datagrid [ par poomen ] Je voudrais vider un datagrid...quelqu'un peu m'aider... ! :D vider un data grid [ par poomen ] j'ai utlisée dataGridView1.DataSource = null; mais ca ne marche pas bien , quand je rappuie sur le bouton afficher sa s'affiche fois , je veux bie supprimer un printed job et effacer le buffer de l'imprimante [ par eyya ] bonjour je suis en train de développer une application avec c# et j'ai une partie que je n'arrive pas à la résoudre il s'agit de supprimer le printed vider un data grid [ par poomen ] je voudrais vider mon datadrid view , comme si je venais de l'ouvrir , j'ai essayé datagrid1.datasource=null ; mais quand je refais l'action , il m'af


Nos sponsors


Sondage...

CalendriCode

Juin 2013
LMMJVSD
     12
3456789
10111213141516
17181920212223
24252627282930

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,780 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales