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

Boost C++ Discussion :

udp::resolver resolver.resolve initialisation ?


Sujet :

Boost C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Ao�t 2007
    Messages
    125
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2007
    Messages : 125
    Par d�faut udp::resolver resolver.resolve initialisation ?
    Bonjour,

    https://www.boost.org/doc/libs/1_77_...cho_client.cpp

    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
     
    int main(int argc, char* argv[])
    {
      try
      {
        if (argc != 3)
        {
          std::cerr << "Usage: blocking_udp_echo_client <host> <port>\n";
          return 1;
        }
     
        boost::asio::io_context io_context;
     
        udp::socket s(io_context, udp::endpoint(udp::v4(), 0));
     
        udp::resolver resolver(io_context);
        udp::resolver::results_type endpoints =
          resolver.resolve(udp::v4(), argv[1], argv[2]);
    J'essaie de modifier ce code pour ne pas � avoir � entrer deux argument pour executer l'application (ex: c:\ app 127.0.0.1 3333) mais je ne comprends pas les arguments dont a besoin "resolver.resolve(..." pour �tre initialiser. Apr�s modification, endpoints s'en retrouve mal initialis� aussi et �a ne compile plus.

    Apr�s recherche, apparement resolver.resolve serait "deprecated" mais je ne sais pas trop par quoi le remplacer.
    Quelqu'un peut m'aider?


    Merci.

  2. #2
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 505
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 505
    Par d�faut
    Ca marche pas ce truc ? :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    udp::resolver::results_type endpoints = resolver.resolve(udp::v4(), "127.0.0.1", "3333");
    Attention aux quotes.

  3. #3
    Membre confirm�
    Profil pro
    Inscrit en
    Ao�t 2007
    Messages
    125
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2007
    Messages : 125
    Par d�faut
    ben si �a fonctionne apr�s avoir supprim�:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
    if (argc != 3)
            {
                std::cerr << "Usage: blocking_udp_echo_client <host> <port>\n";
                return 1;
            }
    Bah j'ai rien compris alors lol.
    J'avais essay� plusieurs fois mais je changais aussi:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    udp::socket s(io_context, udp::endpoint(udp::v4(), 0));
    en rempla�ant udp::v4(),0 aussi avec ip_address et port_num car c'est comme �a que j'initialise le endpoint cot� server.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    std::string raw_ip_address = "127.0.0.1";
        unsigned short port_num = 3333;
        boost::asio::ip::address ip_address =
            boost::asio::ip::address::from_string(raw_ip_address);
     
    ...
     
    MFserver(boost::asio::io_context& io_context, short port)
            : socket_(io_context, udp::endpoint(ip_address, port_num))

    Bref... merci bien, je peux continuer au moins.

  4. #4
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 505
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 505
    Par d�faut
    Citation Envoy� par noals Voir le message
    ben si �a fonctionne apr�s avoir supprim�:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
    if (argc != 3)
            {
                std::cerr << "Usage: blocking_udp_echo_client <host> <port>\n";
                return 1;
            }
    Bah j'ai rien compris alors lol.
    Normal, "argc" donne le nombre d'argument en ligne de commande.
    Si vous lancer "c:\ app", argc est �gale � 1.
    argv[0] = "app"

    Si vous lancer "c:\ app 127.0.0.1 3333", argc est �gale � 3.
    argv[0] = "app"
    argv[1] = "127.0.0.1"
    argv[2] = "3333"

  5. #5
    R�dacteur/Mod�rateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 153
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : Canada

    Informations professionnelles :
    Activit� : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 153
    Billets dans le blog
    4
    Par d�faut
    Et si au lieu de copier du code sans r�fl�chir et en supprimer au petit bonheur tu le lisais le code en question ?
    C'est on ne peut plus clair que tu le lances mal et il te dit comment le faire bien.
    Usage: blocking_udp_echo_client <host> <port>\n
    Pensez � consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation r�seau ?
    Aucune aide via MP ne sera dispens�e. Merci d'utiliser les forums pr�vus � cet effet.

  6. #6
    Membre confirm�
    Profil pro
    Inscrit en
    Ao�t 2007
    Messages
    125
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2007
    Messages : 125
    Par d�faut
    De ce que j'ai compris, j'initialisais mon "endpoint" avec le socket
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    udp::socket s(io_context, udp::endpoint(udp::v4(), 0));
    seulement pour le serveur, je change ces valeurs, et donc naturellement, j'avais utiliser la m�me m�thode avec le client, � savoir:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    udp::socket s(io_context, udp::endpoint("127.0.0.1, 3333));
    ou
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    udp::socket s(io_context, udp::endpoint(ip_address, port_num));
    C'est � dire que l'initialisation de mon socket comme je le fais pour le serveur ne compilait plus le code apr�s avoir modifi� de la m�me fa�on, en plus, l'initialisation du "resolver" et donc non, je n'ai pas compris pourquoi car maintenant, le code compile avec mon resolver mais les argument du socket son ceux "par defaut".

    En gros ce que j'comprends l�, c'est que ce code initialise le socket avec des valeurs par defaut sans se connecter et donc le resolver d�fini le type de resultat que le socket doit attendre avec en bonus les infos de connection.

    j'imagine que la m�thode peut donc �tre utilis� pour "listen" d'autre type de "result" sur un autre port par exemple mais le fait que le socket soit initialis� avec le port 0 m'a troubl�.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 1
    Dernier message: 30/10/2004, 18h29
  2. [Java2D] "The Import java2d cannot be resolved" ?
    Par jmhC dans le forum Eclipse Java
    R�ponses: 3
    Dernier message: 08/08/2004, 15h52
  3. [setParameter]cannot resolve symbole
    Par DEC dans le forum Servlets/JSP
    R�ponses: 7
    Dernier message: 07/07/2004, 20h15
  4. R�ponses: 4
    Dernier message: 19/03/2004, 11h48
  5. TNS:listener could not resolve SERVICE_NAME given in connect
    Par Sinclair dans le forum Administration
    R�ponses: 15
    Dernier message: 20/08/2003, 17h26

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