bonjour,
je doit réalisé un server en C qui répond à des requette http sur deux port différent, pour cela l'utilisation de select est imposé.
je cré donc mon select avec mes deux socket dedans, et quand il déboucle j'ai :
Code :
- if (FD_ISSET(sock1, &prets)) {
- ...
- }
- else if (FD_ISSET(sock2, &prets)) {
- ...
- }
|
ca marche tres bien mon server arrive a rendre le service sur les deux port.
le probleme vien du fait que le server doit afficher dans la console des stat toute les n secondes.
j'ai d'abord pensé avec un sigalrm, mais comme select read etc sont des i/o ca me les fait planter, et il faudrai que je teste errno = EIRN ou je sais plus quoi, bref ca me soule un peu.
j'ai donc feinté en mettant mon timeout de select a n seconde du coup je fait :
Code :
- if (FD_ISSET(sock1, &prets)) {
- ...
- }
- else if (FD_ISSET(sock2, &prets)) {
- ...
- }
- else {
- stats();
- }
|
mais le problem c'est que quand un client utilise le service le select boucle et le timeout n'arrive jamais.
vous voyez une solution pas trop compliqué ?
Message édité par EpoK le 28-02-2004 à 16:47:38