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

  FORUM HardWare.fr
  Programmation
  C++

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°216943
Tetedeienc​h
Head Of God
Posté le 19-09-2002 à 07:58:17  profilanswer
 

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 !
mood
Publicité
Posté le 19-09-2002 à 07:58:17  profilanswer
 

n°216947
LetoII
Le dormeur doit se réveiller
Posté le 19-09-2002 à 08:24:35  profilanswer
 

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
n°217229
Tetedeienc​h
Head Of God
Posté le 19-09-2002 à 15:52:34  profilanswer
 

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 !
n°217237
LetoII
Le dormeur doit se réveiller
Posté le 19-09-2002 à 15:57:51  profilanswer
 

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
n°217250
Tetedeienc​h
Head Of God
Posté le 19-09-2002 à 16:21:57  profilanswer
 

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 !
n°217253
LetoII
Le dormeur doit se réveiller
Posté le 19-09-2002 à 16:23:56  profilanswer
 

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
n°217308
Tetedeienc​h
Head Of God
Posté le 19-09-2002 à 17:17:31  profilanswer
 

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 !
n°217311
LetoII
Le dormeur doit se réveiller
Posté le 19-09-2002 à 17:19:05  profilanswer
 

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
n°217327
Tetedeienc​h
Head Of God
Posté le 19-09-2002 à 17:44:29  profilanswer
 

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 !

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

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

 

Sujets relatifs
[Threads/C] Fonction non bloquante checkant si un thread est fini...ACCESS : Comment ouvrir un fichier sans l'executer
[PHP] Probleme avec la fonction mail() -- Help me !!!pointeur de fonction ou fonction ?
c koi la fonction qui donne la date en php (en lettre) ?[PHP] [Nb] Fonction noms de fichiers d'un dossier > variable ?
copier un document, et filtrer en fonction d'un critère[PHP] aide avec une fonction de rajout de dates / string
comment executer un fichier sql en aspHébergeur de PHP gratuit avec fonction mail
Plus de sujets relatifs à : [C] signal() et paramteres de la fonction a executer...


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