Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : sockets!!!!!!!!!!!!!!! [ Archives / Au secours ] (dletozeun)

samedi 12 juin 2004 à 20:54:32 | sockets!!!!!!!!!!!!!!!

dletozeun

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!!!

dimanche 13 juin 2004 à 00:03:28 | Re : sockets!!!!!!!!!!!!!!!

alain34270

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.

a+
alain

dimanche 13 juin 2004 à 16:29:33 | Re : sockets!!!!!!!!!!!!!!!

dletozeun

merci!
on peut donc cpier une chaine caracteres dans:


sin.sin_addr.s_addr = inet_addr(ip)

ip ettant une chaine de caractere?

dimanche 13 juin 2004 à 17:03:27 | Re : sockets!!!!!!!!!!!!!!!

dletozeun

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!

pourquoi?
merci de votre aide

dimanche 13 juin 2004 à 19:34:15 | Re : sockets!!!!!!!!!!!!!!!

dletozeun

euh...desolé mais en fait c'est bon ca marche!
merci! pour ces bons conseils

dimanche 13 juin 2004 à 20:37:04 | Re : sockets!!!!!!!!!!!!!!!

alain34270

alors, tant mieux !

a+
alain



Cette discussion est classé dans : serveur, client, ip, sockets, addr


Répondre à ce message

Sujets en rapport avec ce message

Récupérer l'IP du client (SOCKETS) dans une app client/serveur [ par supergrey ] Bonjour, je voudrais savoir comment récupérer l'IP du client a partir du programme serveur après le sock=accept(...);Merci d'avance ! Problème de sockets... [ par nightlord666 ] Bonjour ! J'essaie en ce moment de programmer un serveur multithread qui servira(peut-être) à un projet de MMORPG. Le serveur fonctionne normalement, ip du client connecté sur le serveur [ par minet03 ] Coucou, je voulais savoir comment on fesait pour afficher les renseignements du client connecté sur le serveur. J'ai essayé la fonction getpeername() problemme avec les sockets [ par sirion ] Bonjour, j'ai un petit problemme avec les sockets. donc voila, j'ai essayer de faire un serveur/client qui recois 2msg chacun,  mais ca merdouille du Obtenir le hostname du client [ par Poppuledaimadoshi ] Bonjour, je commence dans la programmation réseau, et j'ai un petit problème. En effet, j'ai commencé un petit programme en C plus plus qui fait serve TCP/IP [ par maitrez ] Bonjour à tous,je suis en train de créer une appli client et une appli serveur. L'appli client est un jeu qui représente pour l'instant une petite voi Récupérer l'adresse IP du client qui se connecte à mon serveur [ par HolyDev ] Bonjour, bon alor j'utilise et VS C++Lorsqu'un client se connecte à mon serveur j'aimerai afficher l'adresse IP de celui-ci après le message FD_ACCEP Sockets asychrones et client serveur TCP [ par argali ] Bonjour,Est-ce qqun pourrait m'indiquer ou je pourrai trouver un cours complet sur les sockets asynchrones et leurs options (WSAAsyncSelect, FD_ACCEPT Identifier un Client via Socket IP - C++ [ par Jeff_Trek ] Bonjour,J'utilise un Serveur (Socket IP), J'aimerais identifier les clients qui se connecte et déconnecte.Je connais les adresses IP des clients.Si Cl serveur web HTML : indentification unique d'un client [ par steph12358 ] BonjourDans le cadre u développement d'un petit serveur HTML propriétaire je cherche à identifier de manière unique chaque client connecté pour gérer


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,593 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.