[C] descripteur de socket sous Linux

Résolu
callapa Messages postés 11 Statut Membre -  
 sssssssdsd -
Bonjour,

Je suis en train de développer un serveur sous Linux et je souhaiterais savoir comment passer à une fonction un descripteur de socket.

le descripteur de socket se définit de cette façon :

fd_set nom_du descripteur;

example d'utilisation :

FD_ZERO(&nom_du_descripteur);

Mon souhait serait donc de faire passer ce descripteur à une fonction par l'intermédiaire d'un pointeur je pense.

Merci de votre aide.

8 réponses

  1. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    Salut.
    Je voi vraiment pas où est le problème.
    FD_ZERO(&nom_du_descripteur); doit fonctionner !
    ou alors fd_set est déjà un pointeur, à ce moment, il suffit de faire
    FD_ZERO(nom_du_descripteur); pour vérifier, il suffit de tester :)
    0
  2. callapa Messages postés 11 Statut Membre
     
    Je me suis mal exprimé je pense.

    Je veux créer une fonction dans laquel je souhaite passer en paramètre le descripteur de socket, est-ce possible ?
    Si oui comment puis-je faire ?
    0
  3. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    oui c'est possible, tu peux passer ton descripteur de socket comme n'importe quelle autre variable.
    Je ne sais pas si ça répond à ta question...
    Je ne comprend vraiment pas ce qui t'embete.
    0
  4. callapa Messages postés 11 Statut Membre
     
    Tu pourrais me montrer comment tu fais car je n'y arrive pas ;)
    D'avance merci.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    En fait, je n'ai jamais utiliser fd_set pour faire des socket.
    Moi, j'utilise <socket.h> et j'ai des descripeur ayant comme type SOCKET et SOCKADDR. Mais je ne pense pas qu'il y ai un problème.
    Il faudrai que tu m'en dise un peu plus sur ce que tu inclu, ton OS, etc...
    mais je dirait:
    int FD_ZERO(fd_set*);//mefie toi des non en maj qu'ils ne soient pas associer à des macro
    int main(){
      fd_set*  descripteur;
    //initialisation du descripteur
      FD_ZERO(descripteur);
      return 0;}
    int FD_ZERO(fd_set x){
    //traitement sur x
    return 1;}
    0
  7. callapa Messages postés 11 Statut Membre
     
    Merci pour l'exemple, je vais tester tout ça :)
    0
  8. callapa Messages postés 11 Statut Membre
     
    Super ça fonctionne ... et dire que je comprend rien au pointeur :(

    Merci pour ton aide Char Snipeur
    0