Serveur tcp sur plusieurs ports

Signaler
Messages postés
114
Date d'inscription
lundi 17 février 2003
Statut
Membre
Dernière intervention
28 juin 2004
-
Messages postés
495
Date d'inscription
dimanche 6 juillet 2003
Statut
Membre
Dernière intervention
9 novembre 2007
-
Bonjours,

Est il possible de faire un serveur tcp sur plusieurs ports ?

13 réponses

Messages postés
495
Date d'inscription
dimanche 6 juillet 2003
Statut
Membre
Dernière intervention
9 novembre 2007
1
oui :D
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
justifiez votre réponse
Messages postés
114
Date d'inscription
lundi 17 février 2003
Statut
Membre
Dernière intervention
28 juin 2004

Ici on mes le port
sin_port=htons(port);

Moi je veux que le serveur ecoute sur 2 ports ou plus en meme temp.
Comment je peut faire ?

Merci de m'aider.
Messages postés
495
Date d'inscription
dimanche 6 juillet 2003
Statut
Membre
Dernière intervention
9 novembre 2007
1
port = 37;
sin_port1 = htons(port);

port = 38;
sin_port2 = htons(port);

port = 39;
sin_port3 = htons(port);
Messages postés
114
Date d'inscription
lundi 17 février 2003
Statut
Membre
Dernière intervention
28 juin 2004

ok merci de ton aide.
Messages postés
114
Date d'inscription
lundi 17 février 2003
Statut
Membre
Dernière intervention
28 juin 2004

Eu sa marche pas sa me dit : error C2039: 'sin_port1' : is not a member of 'sockaddr_in'
Messages postés
495
Date d'inscription
dimanche 6 juillet 2003
Statut
Membre
Dernière intervention
9 novembre 2007
1
cherche un peu, on peux pas tout te servir sur un plateau
Messages postés
114
Date d'inscription
lundi 17 février 2003
Statut
Membre
Dernière intervention
28 juin 2004

Si ses pour me donner des trucs faux et en conclusion me dire sa ses pas lapeine.
Messages postés
495
Date d'inscription
dimanche 6 juillet 2003
Statut
Membre
Dernière intervention
9 novembre 2007
1
je ne t'ai rien donner de faux, c'est juste incomplet, a toit de trouver le reste, aparament tu as deja un exemple qui fonctionne, a toi de trouver ce quil te reste a dupliquer pour obtenir plusieurs ecoute en meme temps
Messages postés
114
Date d'inscription
lundi 17 février 2003
Statut
Membre
Dernière intervention
28 juin 2004

Tu pourais me donner la reponse au lieu de me faire chercher :(.

Bon moi j'ai sa :

sockaddrserv.sin_family = AF_INET;
sockaddrserv.sin_addr.s_addr = INADDR_ANY;
sockaddrserv.sin_port = htons(port);

Sserv = socket(AF_INET,SOCK_STREAM,0);
bind(Sserv,(SOCKADDR*)&sockaddrserv2,sizeof(sockaddrserv2));

listen(Sserv,0);

donc pour faire une ecoute sur 2 ports je doi doubler sa est faire :

sockaddrserv.sin_family = AF_INET;
sockaddrserv.sin_addr.s_addr = INADDR_ANY;
sockaddrserv.sin_port = htons(port);

sockaddrserv2.sin_family = AF_INET;
sockaddrserv2.sin_addr.s_addr = INADDR_ANY;
sockaddrserv2.sin_port = htons(port2);

Sserv = socket(AF_INET,SOCK_STREAM,0);
Sserv2 = socket(AF_INET,SOCK_STREAM,0);
bind(Sserv,(SOCKADDR*)&sockaddrserv2,sizeof(sockaddrserv2));
bind(Sserv2,(SOCKADDR*)&sockaddrserv2,sizeof(sockaddrserv2));

listen(Sserv,0);
listen(Sserv2,0);

?
Messages postés
495
Date d'inscription
dimanche 6 juillet 2003
Statut
Membre
Dernière intervention
9 novembre 2007
1
"Tu pourais me donner la reponse au lieu de me faire chercher :("

j'hallucine, tu est certes sur un site d'entre-aide, mais pas sur un site ou on te branle et on te fait a manger

tu as tester ton code avant de demander si c'etais bon ? =)

fait juste attention a ca :

/*
bind(Sserv,(SOCKADDR*)&sockaddrserv2,sizeof(sockaddrserv2));
bind(Sserv2,(SOCKADDR*)&sockaddrserv2,sizeof(sockaddrserv2));
*/

regarde les deux bind utilise le meme sockaddrserv, fait attention...
Messages postés
114
Date d'inscription
lundi 17 février 2003
Statut
Membre
Dernière intervention
28 juin 2004

Je sai qu'on est sur un site d'entre-aide mais si je vien sur le forum ses que j'ai deja chercher.

Oui j'ai vu l'erreur que j'ai marqué mais j'ai pas pu la corriger sur le forum.
Je n'est pas tester car apré qu'on ecoute sur les deux ports, sa fai comme si s'etes deux serveurs et je voi pas comment je peut les reliers enssemble.

Enfin si tu a pas envi de m'aidé ses pas grave je me debrouillerai san.
Messages postés
495
Date d'inscription
dimanche 6 juillet 2003
Statut
Membre
Dernière intervention
9 novembre 2007
1
c'est pas que je ne veux pas t'aider, c'est juste que je ne veux pas tout te faire

ce que tu devrais faire, c'est declarer une variable retour, de type int, et tester les commandes bind et listen

genre

retour = bind(....);
printf("bind : %d\\n", retour);

retour = listen(....);
printf("listen : %d\\n", retour);

si tout ce passe bien, tu devrais avoir -1 ou 0, je sais pu, enfin regarde les codes de retour de ces fonctions... sinon c'est que c'est pas bon

aussi tu pourra tester en te connectant sur ton serveur, avec telnet par exemple