Précédent   Forum des professionnels en informatique > Systèmes > Linux > Réseau
Réseau Vos questions autour des réseaux et télécoms sous Linux
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/12/2006, 11h54   #1
Nouveau Membre du Club
 
Inscription : avril 2004
Messages : 189
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 189
Points : 28
Points : 28
Par défaut Erreur connect() lors de la 2eme connection TCP

Bonjour,

grosse modo j'aimerais créer deux connections TCP entre un serveur et un client. La premiere connection étant initié par le client et la deuxieme initiée par le serveur.

Plus en détail, dans mon application un serveur fait un accept(...&client....) et est donc en possession d'une struct sockaddr client remplie.

J'aimerais maintenant faire en sorte que ce serveur se connecte vers le client dont les paramètres de connection sont connus grace à la struct sockaddr recue via le accept. Bien entendu le client de départ fera maintenant office de serveur.

J'aimerais savoir si je peux utiliser directement la struct sockaddr client en changeant uniquement le port... je pense que non car en faisant celà le connect me donne une erreur. Mais je ne vois pas comment faire autrement.

Si vous avez des idées elles sont les bienvenues. Merci davance
innosang est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2006, 20h49   #2
Expert Confirmé
 
Homme
Inscription : septembre 2006
Messages : 2 291
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : septembre 2006
Messages : 2 291
Points : 2 738
Points : 2 738
Citation:
Envoyé par innosang
Bonjour,

grosse modo j'aimerais créer deux connections TCP entre un serveur et un client. La premiere connection étant initié par le client et la deuxieme initiée par le serveur.

Plus en détail, dans mon application un serveur fait un accept(...&client....) et est donc en possession d'une struct sockaddr client remplie.

J'aimerais maintenant faire en sorte que ce serveur se connecte vers le client dont les paramètres de connection sont connus grace à la struct sockaddr recue via le accept. Bien entendu le client de départ fera maintenant office de serveur.

J'aimerais savoir si je peux utiliser directement la struct sockaddr client en changeant uniquement le port... je pense que non car en faisant celà le connect me donne une erreur. Mais je ne vois pas comment faire autrement.

Si vous avez des idées elles sont les bienvenues. Merci davance
non bien sûr on ne peut pas "connect" deux fois les mêmes interlocateurs via les mêmes ports…

si vous voulez inverser les rôles, le client devrait communiquer au serveur le port sur lequel celui-ci devrait le recontacter…
ce qui signifie allouer un nouveau socket et le "bind" à ce port côté client…
cela peut se faire au moment où le client accède un serveur, il crée un socket qu'il binde à son port qui servira de serveur "en retour" et passe le numéro de ce port au serveur… qui lui s'y connectera comme client…
JeitEmgie est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h46.


 
 
 
 
Partenaires

Hébergement Web