Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1382 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Socket en C, lancer le serveur sur 2 ports

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Socket en C, lancer le serveur sur 2 ports

n°1108613
bb007
Posté le 05-06-2005 à 12:36:20  profilanswer
 

Bonjour,
 
Je viens de créer un petit serveur http gérant les requetes GET et POST.
J'aimerais maintenant lancer ce serveur sur 2 ports à la fois. genre 4444 et 4445
Dans mon while j'ai un ns=accept(sd,(struct sockaddr*)&clientaddr, &sasize);
sd étant mon socket, si je créé un autre socket sur un autre port comment peut on gérer le accept() avec les 2 sockets.
 
 
 
 
 
 

mood
Publicité
Posté le 05-06-2005 à 12:36:20  profilanswer
 

n°1108619
fafounet
Posté le 05-06-2005 à 12:44:06  profilanswer
 

bah tu peux mettre simplement un interrupteur qui change de sens à chaque boucle. En fonction de celui-ci tu choisis de faire un accept sur l'une ou l'autre socket. MAIS étant donné que accept est bloquant cela va poser des problèmes. Si tu attends sur une socket et que y'a personne et bah meme si y'a qqun sur l'autre et bah il l'aura dans le baba

n°1108622
cricri_
Posté le 05-06-2005 à 12:53:11  profilanswer
 

faire une boucle avec 2 select non-bloquant

n°1108713
Emmanuel D​elahaye
C is a sharp tool
Posté le 05-06-2005 à 15:40:06  profilanswer
 

bb007 a écrit :

Je viens de créer un petit serveur http gérant les requetes GET et POST.
J'aimerais maintenant lancer ce serveur sur 2 ports à la fois. genre 4444 et 4445
Dans mon while j'ai un ns=accept(sd,(struct sockaddr*)&clientaddr, &sasize);
sd étant mon socket, si je créé un autre socket sur un autre port comment peut on gérer le accept() avec les 2 sockets.


select() est ton ami.
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1108714
Emmanuel D​elahaye
C is a sharp tool
Posté le 05-06-2005 à 15:40:37  profilanswer
 

cricri_ a écrit :

faire une boucle avec 2 select non-bloquant


Pourquoi ? 1 seul select() bloquant suffit. Le premier parametre de select, c'est pas un fd. C'est le numero de fd max...


Message édité par Emmanuel Delahaye le 05-06-2005 à 15:44:40

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1108717
Emmanuel D​elahaye
C is a sharp tool
Posté le 05-06-2005 à 15:43:18  profilanswer
 

fafounet a écrit :

bah tu peux mettre simplement un interrupteur qui change de sens à chaque boucle. En fonction de celui-ci tu choisis de faire un accept sur l'une ou l'autre socket. MAIS étant donné que accept est bloquant cela va poser des problèmes. Si tu attends sur une socket et que y'a personne et bah meme si y'a qqun sur l'autre et bah il l'aura dans le baba


Mais non accept() n'est pas bloquant. C'est de la config. On appelle accept() autant de fois que nécessaire pour préciser les ports entrants autorisés, et ensuite, on fait une boucle classique avec select().


accept(port x)
accept(port y)
DO
   select()
FOREVER


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1108909
cricri_
Posté le 05-06-2005 à 19:29:08  profilanswer
 

Emmanuel Delahaye a écrit :

Pourquoi ? 1 seul select() bloquant suffit. Le premier parametre de select, c'est pas un fd. C'est le numero de fd max...


Oups !! exact Maître Emmanuel ... ;)

n°1115337
cgo2
Dum spiro spero
Posté le 10-06-2005 à 09:57:21  profilanswer
 

Emmanuel Delahaye a écrit :

Mais non accept() n'est pas bloquant. C'est de la config. On appelle accept() autant de fois que nécessaire pour préciser les ports entrants autorisés, et ensuite, on fait une boucle classique avec select().


accept(port x)
accept(port y)
DO
   select()
FOREVER



 
Tu dois confondre avec listen() non ?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Socket en C, lancer le serveur sur 2 ports

 

Sujets relatifs
lancer un autre programmeplease help me : j arrive pas a lancer Mysql
serveur en Cclient serveur wifi
[PHP] Aller sur un serveur local avec un proxyprintwriter et socket detecter deconnection
Serveur Web : EasyPHP upgradé ou install manuelle ?[easyphp] Rendre accessible le serveur depuis un réseau local [résolu]
lancer word avec javalancer automatiquement un batch
Plus de sujets relatifs à : Socket en C, lancer le serveur sur 2 ports


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR