IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Ada Discussion :

liaison Gnat.Sockets full-duplex


Sujet :

Ada

  1. #1
    Invité
    Invité(e)
    Par défaut liaison Gnat.Sockets full-duplex
    Bonjour, re-bonjour,


    J'ai oublié, et je ne trouve plus, mais je désire établir une liaison full-duplex avec Gnat.Sockets... Pour ça, je cherche à récupérer le Host_Addr_Type du client. Je pourrai passer par Get_Host_By_Name, si je connaissais le hostname du client, mais je trouve pas comment, l'obtenir.

    Il me semble tout de même, je peux récupérer la Inet_Addr mais avec des ',' à la place des '.', ce qui le chagrine car je devrais donner l'adresse normalement en dot notation à une autre fonction, je ne sais plus laquelle.. Enfin voila.

    Merci pour vos lumières.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Normalement la fonction Get_Peer_Name devrait faire ce don j'ai besoin en réalité, une Sock_Addr_Type.

  3. #3
    Invité
    Invité(e)
    Par défaut Ca marche un coup mais pas deux
    Bonjour,

    Je tente donc d'établir une connexion full-duplex entre une client et un serveur.

    Pour faire ceci, je me connecte dans un premier temps au serveur, puis je met en place un serveur côté client pour que le serveur obtienne la connexion retour sur le client. Ca marche nickel une fois mais pas deux.

    Je cherche donc, pourquoi.

    Côté client, j'ai le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
                         Srv_Adr.Addr := Sockets.Any_Inet_Addr;
                         Srv_Adr.Port := 5877;
                         Sockets.Create_Socket(Srv_Socket);
     
                         Sockets.Bind_Socket(Srv_Socket,Srv_Adr);
                         Sockets.Listen_Socket(Srv_Socket);
     
                         Sockets.Accept_Socket(Srv_Socket, Input_socket,Adr);
    Côté serveur, celui ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
                   Address := Sockets.Get_Peer_Name(Socket.all);
                   Address.Port := 5877;
     
                   sockets.Create_Socket (Output_Socket);
     
                   sockets.Set_Socket_Option
                     (Output_Socket,
                      sockets.Socket_Level,
                      (sockets.Reuse_Address, True));
                   sockets.Connect_Socket (Output_Socket, Address);
    Merci pour vos lumières.

  4. #4
    Invité
    Invité(e)
    Par défaut Oops
    En fait, ... Je profite de se thread pour vous poser la bonne question connexe..

    En réalité, c'est à la deuxième connexion au serveur que j'échoue, déjà.

    Pourtant j'utilise bien Set_Socket_Option(*, *, Reuse_address, true);

    Si vous voulez jeter un oeil aux sources, voici les deux paquets client et serveur : client.tar.gz ; server.tar.gz

    Dans le client, consultez le main.adb dans src ;
    Dans le serveur, consultez le application.adb dans src/lib.

    Encore merci pour votre aide.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Hello,

    J'aurais trouvé...

    Ne pas oublier de fermer le Socket serveur.

    Par contre, je ne peux pas ouvrir deux client (avec le serveur) sur la même machine, je me demande si c'est normal ?

Discussions similaires

  1. sockets full-duplex en c#
    Par sakrata dans le forum C#
    Réponses: 4
    Dernier message: 08/04/2011, 12h35
  2. Rupture liaison sur socket non-bloquant
    Par oLie dans le forum Réseau
    Réponses: 5
    Dernier message: 27/11/2008, 18h20
  3. Réponses: 3
    Dernier message: 11/04/2008, 20h30
  4. Configuration Full Duplex Ou Half Duplex
    Par dauphin34000 dans le forum Hardware
    Réponses: 9
    Dernier message: 18/12/2006, 13h38
  5. [Ada] Storage_exception avec les gnat.sockets
    Par guilastro dans le forum Ada
    Réponses: 2
    Dernier message: 21/12/2005, 14h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo