Communication Client/Serveur ! Ou es le problème ?
QuakeCoder
Messages postés17Date d'inscriptionjeudi 23 novembre 2000StatutMembreDernière intervention10 août 2005
-
10 août 2005 à 13:16
QuakeCoder
Messages postés17Date d'inscriptionjeudi 23 novembre 2000StatutMembreDernière intervention10 août 2005
-
11 août 2005 à 19:44
Je recentre fréquemment un problème avec lutilisation de
socket et la communication entre Client/Server.
Prenant un exemple de ma dernière application de transfert
de fichiers.
Apres connexion, le serveur envoi le nombre de fichiers qui
vat transférer au client.
Puis il entre dans une boucle (tanque le nombre de fichier nest
pas Null), et envoi ensuite le nom du fichier puis sa taille et après commence
à lire 1024 octet et les envoi au client jusqu à la fin du fichier et ainsi de suite .
Le problème cest que ça marche nickel sur le réseau local. Et
parfois sur le réseau Internet ça bug ! Le client ne reçoit pas ce qil
doit recevoir.
c-a-dire, il reçoit parfois le nom du fichier mixer avec
autre chose, ou il reçoit correctement le nom du fichier mais pas sa taille .
Et je règle le problème juste en mettant un Sleep(500) au
niveau du serveur après chaque envoi complet dun fichier.
Quelquun a rencontrer la même chose que moi ?
A voir également:
Communication Client/Serveur ! Ou es le problème ?
aabdoos
Messages postés39Date d'inscriptionmardi 20 avril 2004StatutMembreDernière intervention 6 septembre 2008 11 août 2005 à 06:01
hi amigo c evidant ....(^__^) pense logiquement .lorsque vous mettez le sleep ca marche bien...non?...c ca se que vous avez dit...ehh ben mon vieux quant tu envoi un paquet tcp il lui faut du temp pour traverser le chemain jusqu'a la destination et il traverse pas male de passrelle dans sont chemain ce qui peut le retarder un peut alors si tu boucle et tu envoi t paquet a la vitesse max de votre machine (cad sans metre de sleep(500)) alors les paquet risque de se bousculer dans le resaux (et sachant que tout les paquets ont le meme deleay TimeOut) alors sa peux coser la perte de quelque paquet...donc l'idee de metre un sleep(500) et l'ideale CAPICHE...(^__^)
a+
xterminhate
Messages postés371Date d'inscriptiondimanche 4 janvier 2004StatutMembreDernière intervention23 septembre 2009 11 août 2005 à 08:31
Aabdoos > Ignorant. TCP gère justement tous ces problemes de connexion réseau, par définition (réémission, acquittement, etc...). Ca aurait été UDP, je serais un peu d'accord et encore....
RocketJumpCoder () > Lorsque tu send() au niveau du serveur, les octets sont ils bien tous envoyés (teste la valeur de retour).
aabdoos
Messages postés39Date d'inscriptionmardi 20 avril 2004StatutMembreDernière intervention 6 septembre 2008 11 août 2005 à 17:01
alors si comme vous dite le tcp gere c probleme de resaux dans les couches inferieur alors il est fort possible que le port que vous utilisez est utilise par une autre soket d'1 autre processus verifier le port que vous avez configurer votre serveur d'y ecouter
a+