Connexion à double sens

Connexion à double sens - C++ - Programmation

Marsh Posté le 16-04-2010 à 19:26:46    

Bonjour, je suis en train d'apprendre à utiliser les sockets (sous windows), et je vois partout le modèle suivant :  
 
le "serveur" se met en attente de connexion, le client se connecte.
 
A partir de ce moment là, le serveur se met en attente de réception et le client envoie une donnée.
 
Je me suis posé la question suivante : dans le cas d'une messagerie instantanée (disons qu'il n'y a pas de serveur entre les deux ordinateurs pour simplifier), comment faire ? car si l'on se met en mode "attente" sauf au moment où l'on désire envoyer, alors on risque d'envoyer pile en mm temps que l'autre en face, et de ce fait de ne pas recevoir son message.
 
Quelle solution est utilisée en pratique (multithreading peut être (un thread en émission, l'autre en réception ?)) ?
 
Merci d'avance
 
NC

Reply

Marsh Posté le 16-04-2010 à 19:26:46   

Reply

Marsh Posté le 16-04-2010 à 21:11:27    

Ou qqch comme les pool/select d'Unix.  Je sais qu'il y a l'équivalent mais je ne suis pas sûr du nom (WaitOnMultipleObjects) ni si ça ne nécessite pas de passer par une autre API que les sockets.


---------------
The truth is rarely pure and never simple (Oscar Wilde)
Reply

Marsh Posté le 16-04-2010 à 21:46:46    

boost::asio

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed