[C] signal() et paramteres de la fonction a executer...

signal() et paramteres de la fonction a executer... [C] - C++ - Programmation

Marsh Posté le 19-09-2002 à 07:58:17    

Bonjour !
 
J'ai besoin, pour implementer un timeout dans l'attente d'un paquet reseau ( en l'occurence on s'en fout mais ct juste pour dire) pour en renvoyer un autre, d'utiliser les signaux.
 
Donc je fais ceci :
 

Code :
  1. signal(SIGALRM, onalarm );
  2.   alarm(10);
  3.   recvfrom(...divers param...);
  4.   signal(SIGALRM,SIG_IGN);


le recvfrom est bloquant, cad que l'execution va se bloquer ici etattendre un paquet du reseau.
 
Si y a rien au bout de 10 secondes je dois en renvoyer un et retourner a mon attente.
 
Je file donc la fonction onalarm en parametre a signal.
 
Probleme : Pour envoyer un paquet, faut une adresse IP, un port...
 
Y a t'il moyen de la passer en parametre a la fonction onalarm pour que l'envoi se passe bien ?
 
Pour l'instant j;ai foutu l'adresse IP et le port en variable globale, mais je trouve ca moche... je voulais savoir si il y avait un autre moyen ( avec alarm ou sans ).
 
Merci d'avance...


---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
Reply

Marsh Posté le 19-09-2002 à 07:58:17   

Reply

Marsh Posté le 19-09-2002 à 08:24:35    

Tetedeiench a écrit a écrit :

Bonjour !
 
J'ai besoin, pour implementer un timeout dans l'attente d'un paquet reseau ( en l'occurence on s'en fout mais ct juste pour dire) pour en renvoyer un autre, d'utiliser les signaux.
 
Donc je fais ceci :
 

Code :
  1. signal(SIGALRM, onalarm );
  2.   alarm(10);
  3.   recvfrom(...divers param...);
  4.   signal(SIGALRM,SIG_IGN);


le recvfrom est bloquant, cad que l'execution va se bloquer ici etattendre un paquet du reseau.
 
Si y a rien au bout de 10 secondes je dois en renvoyer un et retourner a mon attente.
 
Je file donc la fonction onalarm en parametre a signal.
 
Probleme : Pour envoyer un paquet, faut une adresse IP, un port...
 
Y a t'il moyen de la passer en parametre a la fonction onalarm pour que l'envoi se passe bien ?
 
Pour l'instant j;ai foutu l'adresse IP et le port en variable globale, mais je trouve ca moche... je voulais savoir si il y avait un autre moyen ( avec alarm ou sans ).
 
Merci d'avance...




 
Ce serait pas plus simple avec la fonction select?


---------------
Le Tyran
Reply

Marsh Posté le 19-09-2002 à 15:52:34    

select ?
 
Tu peux detailler ?


---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
Reply

Marsh Posté le 19-09-2002 à 15:57:51    

Tetedeiench a écrit a écrit :

select ?
 
Tu peux detailler ?
 




 
man select :D
 
En gros, c une fonction qui tepermet d'écouter plusieurs entrée simultanément(entrée standard, socket...). Dès qu'il y a qqc sur l'un de ses entrée tu peux le récupérer et le traiter. Et y a un time out.


---------------
Le Tyran
Reply

Marsh Posté le 19-09-2002 à 16:21:57    

ok, mais alors la, je vois pas comment l'utiliser dans ce cas precis...
 
jamais bosse avec ces trucs la :/


---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
Reply

Marsh Posté le 19-09-2002 à 16:23:56    

Tetedeiench a écrit a écrit :

ok, mais alors la, je vois pas comment l'utiliser dans ce cas precis...
 
jamais bosse avec ces trucs la :/




 
Regarde le manuel ;)


---------------
Le Tyran
Reply

Marsh Posté le 19-09-2002 à 17:17:31    

je fais que ca...
 
Et je dois dire que ca reste assez obscur.


---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
Reply

Marsh Posté le 19-09-2002 à 17:19:05    

Tetedeiench a écrit a écrit :

je fais que ca...
 
Et je dois dire que ca reste assez obscur.




 
Je regarderai si je retrouve un de mes sources, ça t'aidera peut être.


---------------
Le Tyran
Reply

Marsh Posté le 19-09-2002 à 17:44:29    

Ouaip, pile ce qu;il me faut ;)
 
Je comprends tjs 20x + rapidement avec un exemple ;)


---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed