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

Prolog Discussion :

liaison (Client Prolog) -> (Serveur Ada).


Sujet :

Prolog

  1. #1
    Membre du Club
    Homme Profil pro
    codeur
    Inscrit en
    Mars 2018
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : codeur

    Informations forums :
    Inscription : Mars 2018
    Messages : 158
    Points : 64
    Points
    64
    Par défaut liaison (Client Prolog) -> (Serveur Ada).
    Bonjour

    J'ai copié le code du client socket du jeu réseau mastermind.

    J'essaie de le connecter à un serveur Ada.

    J'obtiens Socket Error : Connection refused.


    Mon code avec Prolog :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
       % connexion au serveur
        tcp_socket(Socket),
        Host='localhost', Port=5787,
        writeln("Connect..."),
        tcp_connect(Socket, Host:Port),
        writeln(" done"),
        writeln("open socket..."),
        tcp_open_socket(Socket, ReadFd, WriteFd),
        writeln(" done"),
        % envoi des données
        format(WriteFd, '~s~n', Input),        
        flush_output(WriteFd),
     
        % récupétation des résultats
        read_line_to_codes(ReadFd, Sentence),
        close(ReadFd),
        close(WriteFd),
    Donc j'ai bien le message Connect.... mais pas le done correspondant et une erreur.

    Je voudrais savoir si ce code est correcte/suffisant ?
    Au quel cas j'yrais en section Ada.

    S'il vous plait !

    Merci !
    Logique sans matière est matière de logique.

  2. #2
    Membre du Club
    Homme Profil pro
    codeur
    Inscrit en
    Mars 2018
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : codeur

    Informations forums :
    Inscription : Mars 2018
    Messages : 158
    Points : 64
    Points
    64
    Par défaut j'ai écrit un petit serveur Prolog et le code fonctionne, donc.
    Ce code fonctionne, je pense, en tout cas la connection par socket est établie.

    Je vais demander un coup de main avec Ada.

    Merci désolé du sujet supplémentaire.

    Ollala, je n'avais initialisé mon serveur. la pagaille pour un petit "Server.Init".

    Merci encore pour votre patience.
    Logique sans matière est matière de logique.

  3. #3
    Membre du Club
    Homme Profil pro
    codeur
    Inscrit en
    Mars 2018
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : codeur

    Informations forums :
    Inscription : Mars 2018
    Messages : 158
    Points : 64
    Points
    64
    Par défaut problème d'envoie ou de reception de chaîne.
    Si vous passer par là est avaez du temps à perdre ou à gagner selon.
    Je ne parviens pas à communiquer une chaîne de charactère avec Prolog à Ada.

    j'ai essayé beaucoup de chose seans y parvenir.

    Si vous souhaitez jeter un coup d'oeil à mes codes :

    Je passe bien une chaine apparemment mais vide sensiblement en arriavnt côté Ada.

    Re voilà mon code prolog du prédicat pnl :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    pnl :-
        read_string(user_input, "!?.", """\n", End, P),
     
        % connexion au serveur                                                      
     
        tcp_socket(Socket),
     
        Host='localhost', Port=8001,
     
        writeln("Connect..."),
     
        tcp_connect(Socket, Host:Port),
     
        writeln(" done"),
        writeln("open socket..."),
     
        tcp_open_socket(Socket, ReadFd, WriteFd),
     
        writeln(" done"),
        writeln("% envoi des données"),
        writeln(P),
     
        string(P),
     
        format(WriteFd, '~s', [P]),
     
        flush_output(WriteFd),
    /* la chaîne en arrivant est vide.
        close(WriteFd),
     
        writeln("% récupétation des résultats"),
    /* le programme s'arrête ici */ Peut-être normal.
        read_line_to_codes(ReadFd, L),
     
        writeln("% close"),
     
        close(ReadFd),
     
        writeln("% liste_to_codes"),
     
        string_codes(S, L),
     
        writeln("input_to_list"),
     
        input_to_list(S, List, Sentence),
     
        writeln("and others"),
        length(List, Length),
        nth1(Length, List, At_End),
        char_code(At_End, End),
        pnl_dialog(List, Sentence, End),
        pnl.
    Merci pour vos lumières.
    Logique sans matière est matière de logique.

  4. #4
    Membre du Club
    Homme Profil pro
    codeur
    Inscrit en
    Mars 2018
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : codeur

    Informations forums :
    Inscription : Mars 2018
    Messages : 158
    Points : 64
    Points
    64
    Par défaut passage d'un entier par socket (Client Prolog) -> (Server Ada)
    Bonjour,
    J'ai l'espoir d'y parvenir.
    En effet je viens de passer une chaîne de 5 caractères.
    Mais je connaissais la longueur de la chaîne avant.
    Donc j'essaie de passer la longueur de la chaine à présent.

    mon format est à l'instant le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     string(P),
        string_codes(P, P_Codes),
        length(P_Codes, P_Length),
        writeln(P_Length),
        format(WriteFd, '~d', P_Length),
    Mais j'ai 21 côté Prolog, et 1869507428 précisément côté Ada.
    Logique sans matière est matière de logique.

Discussions similaires

  1. Liaison client-serveur Windows server 2012
    Par Uranne-jimmy dans le forum Windows Serveur
    Réponses: 34
    Dernier message: 12/09/2013, 17h02
  2. Réponses: 4
    Dernier message: 27/09/2009, 21h22
  3. Réponses: 10
    Dernier message: 31/05/2005, 11h41
  4. [OUTIL]Outil de trace SQL entre 1 client et 1 serveur
    Par Laurent Dardenne dans le forum Oracle
    Réponses: 12
    Dernier message: 15/04/2005, 20h44
  5. [SOAP] : client en PHP, serveur en kylix + .so
    Par RezzA dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 27/01/2003, 17h53

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