cs_yvesyves
Messages postés561Date d'inscriptionsamedi 10 janvier 2004StatutMembreDernière intervention11 octobre 2010
-
3 mai 2008 à 20:18
NHenry
Messages postés15083Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention19 septembre 2023
-
7 mai 2008 à 10:42
Bonjour,
J'ai créé un serveur et un client. Le serveur un TcpClient envoie un fichier au client par bloc de 102400 octets.
Voilà comment je fais pour faire simple
Serveur :
Lire dans le fichier 102400 octets
Envoyer les 102400 octets dans le flux du TcpClient (obtenu avec GetStream)
Client :
Lire autant que possible
Ecrire dans le fichier
Le problème, c'est qu'au cours du transfert, j'ai une erreur indiquant que la mémoire tampon est saturé ou la liste d'attente est pleine. Je suppose que j'écris trop dans le flux et je réceptionne pas assez vite.
Je voudrais savoir comment controler cette mémoire tampon pour pouvoir lui dire de reprendre dès qu'elle est vide. Ou si vous avez d'autre solution...
cs_yvesyves
Messages postés561Date d'inscriptionsamedi 10 janvier 2004StatutMembreDernière intervention11 octobre 2010 7 mai 2008 à 10:37
Oui mais après j'avais quelques problèmes avec les thread en faisant celà (je pouvais pas lancer un beginsend en même temps d'un callbackreceive). Pour faire plus simple j'ai crée mais propres fonctions dans des threads avec receive et send et du coup je n'ai plus de problème de buffer puisque c'est moi qui gère tout.
NHenry
Messages postés15083Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention19 septembre 2023159 5 mai 2008 à 14:02
Bonjour
Tu peux demander à ton client à ce qu'il te retourne un octet au bout de x octets reçus, comme cela, tu sera en moyen de déterminer combien d'octets sont en attente.
Le fer à souder a besoin d'une panne pour fonctionner.
VB (6, .NET1&2), C++, C#.Net1
Mon site