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

  FORUM HardWare.fr
  Programmation

  [Socket] données perdues

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Socket] données perdues

n°200544
jeremy
Posté le 23-08-2002 à 13:50:08  profilanswer
 

Salut,  
 
sous Linux, en C.  
Soit 2 progs : prog1 et prog2  
 
Prog2 écoute sur un port.  
J'ai un message initial de X octets  
Prog1 écrit (primitive write) sur ce port en boucle et envoie à chaque fois un buffer de 19360octets (taille que j'ai fixé), et s'arrête quand il le faut. Je fais une trace des buffers envoyés dans un fichier (buffer + taille envoyée)  
 
Prog2 lit (primitive read) les buffers qu'il recoit et je fais une trace de ces buffers dans un fichier (taille lue + buffer lui-même)  
 
Problème:  
le fichier de trace de prog1 est correct : à chaque fois on envoit bien 19360 octets  
 
par contre le fichier de trace de prog2 est faux : je lis bien à chaque fois 19360octets et le buffer est bon, sauf au bout d'un moment, je recois un buffer qui ne fait QUE 15488 octets, puis les lectures suivantes ne recoivent rien, puis je lis un buffer de 3872octets, puis ensuite tout reva bien et je relis des octets de 19360.  
 
Conclusion : je perds une bonne partie du message initial ke j'avais scindé en buffer de 19360.  
 
Après moultes recherches (et n'étant pas spécialement un pro de TCP/IP et ses sockets lol), qqun peut-il m'expliquer d'où çà vient ?  
 
Merci !!


---------------
Savoir c'est vivre, et maintenir dans l'ignorance, c'est presque un homicide.
mood
Publicité
Posté le 23-08-2002 à 13:50:08  profilanswer
 

n°200651
MagicBuzz
Posté le 23-08-2002 à 15:38:20  profilanswer
 

J'avais eu le même problème avec WinSocks avec VB.
 
Je me souvient plus trop d'où ça venait, mais globalement, c'est qu'il ne faut envoyer des infos (la taille d'un buffer Socks) que quand l'appli qui envoie à eu une réponse du client lui indiquant qu'il a tout reçu et que son buffer est vide et prêt à revoir des infos.
 
En fait, c'est parceque le client à son buffer plein, et donc perds les nouvelles infos. C'est pas un bug, c'est normal, faut le gérer à la main.

n°200659
_Mac_
Posté le 23-08-2002 à 15:45:20  profilanswer
 

C'est un comportement aléatoire ou reproductible ? Quand ça foire, c'est systématiquement au même moment (au bout du même nombre de paquets de 19360 octets) et sur une taille de 15488 octet ?


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

  [Socket] données perdues

 

Sujets relatifs
retour sur base de données d un formulaire...[XSL-XML] Script XSL et données XML => intéraction : soluce inside
base de données "rapid files" : qui connait ???Selection de base de données
Utiliser l'Applet Java et Socket pour imprimer: Comment??????Interfacer une base de données Access avec PHP c'est possible?
Comment sauvegarder des données dans un fichier ?Effacer toutes les données d'un tableau ( Array )
socketproblème avec WHERE pour récup de données... (résolu)
Plus de sujets relatifs à : [Socket] données perdues


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