Savoir si le client est pret a recevoir les données

Résolu
ebooserge Messages postés 137 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 16 juillet 2007 - 15 nov. 2006 à 17:01
ebooserge Messages postés 137 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 16 juillet 2007 - 15 nov. 2006 à 17:38
salut a tous,
j'ai une petite question sur les sockets orientées connection (TCP)
lorsqu'un client se connecte a un serveur, est ce qu'il ya moyen pour le serveur de savoir que le client est pret a recevoir les données (par la fonction recv) ? parce que mon but est de n'envoyer les données que lorsque le client est pret et pas avant. j'ai essayé de lire la doc sur les fonctions comme WSAAsyncSelect, ioctlsocket ... mais je n'ai rien trouvé.
Merci de m'eclairer les gars ... et les filles

3 réponses

yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
15 nov. 2006 à 17:19
Salut ebooserge,

en fait une fois que le client est connecté, il est censé être prêt à recevoir des données.
Autrement dit, il doit soit intercepté un événement si c'est en asynchrone ou alors être dans une boucle avec un recv.
J'espère avoir répondu à ta question.

YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
3
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
15 nov. 2006 à 17:22
Salut,

Coté client, une fois le connect() terminé sans erreur ou le FD_CONNECT
recu sans erreur, c'est que le socket est prêt pour faire transferer
des données (send/recv). Coté serveur, c'est pareil, a partir du moment
ou tu as accept() qui a retourné un socket valide, celui ci est
disponible pour envoyer/recevoir des données.


On peut aussi comprendre ta question d'une autre maniere: est ce que le
serveur à moyen de savoir quand le client est entrain de faire un
recv() bloquant ? ca, je ne pense pas et d'ailleur il est possible que
ton client utilise une autre fonction que recv, voire même autre chose
que les sockets.
3
ebooserge Messages postés 137 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 16 juillet 2007 1
15 nov. 2006 à 17:38
ok merci les gars.
0
Rejoignez-nous