dletozeun
Messages postés546Date d'inscriptionvendredi 13 février 2004StatutMembreDernière intervention 9 janvier 2008
-
12 juin 2004 à 20:54
cs_alain34270
Messages postés85Date d'inscriptionmardi 11 février 2003StatutMembreDernière intervention18 septembre 2005
-
13 juin 2004 à 20:37
bonjour,
J'ai encore un probleme avec les sockets:
voila, g reussi a faire communiquer un serveur et un client su r 2 ordinateur distant mais cette connection ne marche que dans dans un sens (logique): client----->seveur
Comment faire poue que le seveur puisse envoyer des messages au client? Faut il refaire:
_un bind
_un listen
_un acceptsocket
du coté client, sur un autre port??
ou alors existe il une fonction "send" qui permet d'envoyer des données en selectionnant un ip? (le serveur connaissat l'ip du client)
derniere question:comment fait on our parametrer son ip avant une connction avec les sockets?
Par exemple le programme demande : "quel est votre ip?".
ensuite il l'enregistre dans une chaine puis faudrait la copier dans:
service.sin_addr.s_addr = inet_addr( "ip" );
comment fait on?
Merci!!!
cs_alain34270
Messages postés85Date d'inscriptionmardi 11 février 2003StatutMembreDernière intervention18 septembre 2005 13 juin 2004 à 00:03
salut,
Si je ne me trompe pas, tu peux bien faire un send à partir du serveur vers le socket du client. à partir du moment où le accept est passé, tu peux converser dans les 2 sens.
à mon avis, il est d'ailleurs recommandé de ne jamais envoyer deux messages successifs dans le même sens.
tu fais un send dans la socket connectée à la socket distante, qui doit être en attente.
pour la deuxième question :
une fois que tu as l'ip du serveur dans la chaine de caractères, tu remplis ta SOCKADDR_IN sin (par ex) :
sin.sin_addr.s_addr = inet_addr(ip)
pour le no de port, c'est (si port est le no du port en int) :
sin.sin_port = htons(port)
le serveur doit être en attente sur le no de port indiqué. une fois la connexion établie, tu peux alors envoyer des messages dans un sens ou dans l'autre.
Tu devrais regarder dans les sources. je suis sûr qu'il y a de nombreux exemples traitant de ce sujet.
dletozeun
Messages postés546Date d'inscriptionvendredi 13 février 2004StatutMembreDernière intervention 9 janvier 20081 13 juin 2004 à 17:03
euh non ya un probleme!
je viens de faire des test la dessus:
le client se connecte au serveur
puis il peut envoyer autant de message qu'il le souhaite
ensuite le serveur envoie un message
le client le recoit bien (il peut meme en recevoir plein du serveur...)
mais ensuite le client a beau envoyer des messages au serveur celui ci ne recoient plus jamais!
la communication ne marche plus que dans le sens serveur---->client!