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

  FORUM HardWare.fr
  Programmation
  Java

  Socket TCP et Thread...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Socket TCP et Thread...

n°620801
lyynx
Posté le 24-01-2004 à 03:47:07  profilanswer
 

En fait ma question est la suivante:
 
Quadn un thread client écrit dans un outputstream redirigé vers un socket, reste il bloqué jusqu'à recevoir la confirmation de la réception du packet par le serveur ?
 
TCP étant reliable je vois mal comment le thread pourrais continuer: en cas de non réception du packet, on est censé avoir une erreur... hors à ma connaissance on ne peut pas avoir d'erreur sur un code qui a déjà été effectué !!!
 
Ce qui signifie que le thread est bloqué tant que la reception du packet n'a pas été confirmé par le serveur. Mais dans ce cas la perte de temps me semble déraisonnable. (ms vs ns?)
 
Où est ce que mon raisonnement cloche???

mood
Publicité
Posté le 24-01-2004 à 03:47:07  profilanswer
 

n°620828
darklord
You're welcome
Posté le 24-01-2004 à 12:57:14  profilanswer
 

non c'est correct je pense. Si tu écris sur un distant tu as la main qd ta pile TCP a recu un client ACK pour les paquets que tu as envoyés.
 
donc oui le write() peut prendre dès lors du temps

n°620902
lyynx
Posté le 24-01-2004 à 18:17:08  profilanswer
 

Ok merci... J'essaierai de me faire confirmer cette interpretation.
 
Dans la même catégorie, un autre point de detail. TCP garantie que les packet sont delivrés... qu'est ce que ca veut dire: Au moins qu ils arrivent sur la machine distante... mais est ce que cela garantie egalement qu'un serveur écoute sur ce port et que le paquet n'est pas tout simplement droppé faute de recepteur...  
 
... dsl mais sur des points de detail comme ca je ne trouve aucune doc.

n°621024
darklord
You're welcome
Posté le 24-01-2004 à 21:44:44  profilanswer
 

bin la doc c'est le RFC de TCP qui est la référence ou bien un excellent bouquin "Computer Networks" de A. Tanenbaum.
 
Pour répondre à ta question, chaque paquet TCP doit recevoir un ACK  du récipient. Dans le cas contraire, le client retransmet automatiquement le dit paquet. Si personne n'ACK un paquet, une exception au niveau Java est lancée.

n°621460
lyynx
Posté le 25-01-2004 à 20:19:51  profilanswer
 

ok, mais qui acknoledge le packet:
- le hardware
- l OS
- le software qui ecoute sur ce port
J opterais plutot pour la seconde solution qui implique que la bonne reception d'un paquet ne garantie en aucun cas qu'un process l'a recuperé de l'autre coté. (Ce process pouvant etre down...)
donc on ne peut pas savoir comme cas si un process est down ou pas, il faut que ce dernier réponde explicitement (C'est juste un exemple).
 
Merci pour ton aide, je vais aller jeter un coup d oeil la bas.

n°621468
darklord
You're welcome
Posté le 25-01-2004 à 20:36:35  profilanswer
 

Lyynx a écrit :

ok, mais qui acknoledge le packet:
- le hardware
- l OS
- le software qui ecoute sur ce port
 
J opterais plutot pour la seconde solution qui implique que la bonne reception d'un paquet ne garantie en aucun cas qu'un process l'a recuperé de l'autre coté. (Ce process pouvant etre down...)
donc on ne peut pas savoir comme cas si un process est down ou pas, il faut que ce dernier réponde explicitement (C'est juste un exemple).
 
Merci pour ton aide, je vais aller jeter un coup d oeil la bas.


 
:non: ne pas mélanger les couches.
 
Si le processus est down, tu as un close au niveau du socket normallement et donc exception. Dans certains cas, l'implémentation TCP n'est effectivement pas consciente que le processus client est mort mais bon ca ne dure pas longtemps, vu que la taille des buffers est plus que limitée. Sinon pour la réponse explicite oui et non. Cela dit, un mécanisme de ping - pong (ou watchdog) est conseillé si la connection reste ouverte pendant un certain temps.
 
Ce qu'il faut comprendre avec TCP c'est que tu as 2 états: soit il recoit tout et c'est ok, soit il manque qqch et il y a une erreur. La couche TCP s'arrange pour que si tu envoies 'TOTO' le client ne recoives pas 'TOSO'. C'est un niveau plus bas que l'applicatif.
 
 
Un exemple de diagramme de transition d'états:
http://www.ssfnet.org/Exchange/tcp [...] es.html#ST
 
Le mécanisme de fenêtre glissante utilisé pour contrôller la congestion et l'acquittement des paquets:
http://www.ssfnet.org/Exchange/tcp [...] es.html#SW
 
Un cours en Français de mon maitre de stage si nécessaire:
http://www.icampus.ucl.ac.be/claro [...] odule1.pdf


Message édité par darklord le 25-01-2004 à 20:53:59
n°621505
lyynx
Posté le 25-01-2004 à 21:49:24  profilanswer
 

Y a pas a dire tout est la.
Un trés grand merci, pour ton aide.

n°621521
darklord
You're welcome
Posté le 25-01-2004 à 22:46:53  profilanswer
 

you're welcome

n°623471
electricbl​ue
Pas très inspiré...
Posté le 28-01-2004 à 05:10:50  profilanswer
 

darklord: pourrais-tu remettre le lien du cours, j'ai une erreur 404 qd j'essaie de le lire??
Merci d'avance :)

n°623473
the real m​oins moins
Posté le 28-01-2004 à 06:58:52  profilanswer
 

j'pense que c'est parce qu'il faut etre loggé sur le site...


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
mood
Publicité
Posté le 28-01-2004 à 06:58:52  profilanswer
 

n°623486
electricbl​ue
Pas très inspiré...
Posté le 28-01-2004 à 08:04:41  profilanswer
 

Ah oui, merci ;)
Sinon pas mal ce site, ya plein de trucs en fait.

n°623494
darklord
You're welcome
Posté le 28-01-2004 à 08:29:47  profilanswer
 

electricblue a écrit :

Ah oui, merci ;)
Sinon pas mal ce site, ya plein de trucs en fait.


 
c'est basé sur claroline, un truc d'e-learning qui commence à être relativement connu. Malheureusement il y a bcp de profs qui refusent de publier leurs cours online ce que je trouve ridicule mais bon [:spamafote]


---------------
Just because you feel good does not make you right

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

  Socket TCP et Thread...

 

Sujets relatifs
choisir la carte réseau du socket en JavaDifférence: thread - query ?
problème de socket client --> bloquantes ou pasSocket standard win32/unix avec Borland c++ builder 6
[Borland] Client déconnecté = serveur :asyncronous socket error 10053programmation windows -> fenetre et thread
[Java] socket: faire tourner plusieurs serveurs sur le meme portsocket et envoi de structure
multithread , sémaphore, linux : endormir un thread.programmation socket sous windows
Plus de sujets relatifs à : Socket TCP et Thread...


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