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

Réseau C Discussion :

Thread et select + adresse internet


Sujet :

Réseau C

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 87
    Par défaut Thread et select + adresse internet
    Bonjour,
    j'ai deux questions,

    j'ai crée un petit serveur "web", sur la meme machine j'ai un client qui demande des informations à ce serveur, mais ce client peut se connecter par l'intermédiaire d'un relay, proxy.

    Ainsi la requète envoyé au proxy est :
    "GET /http://monadresseip/pagesurmonserveur.html /r/n"

    J'ai donc besoin de l'adresse ip internet du serveur, de ma machine et je ne sais pas comment la récupérer, à part si c'est l'utilisateur qui l'a donne, ce que je voudrais éviter.

    Deuxièmement si je dois, grace au protocole UDP envoyer des données à de multiples serveurs, je crée une socket et x adresses distantes :

    puis j'envoie les données comme ceci :

    send_to(masock,mess,strlen(mess),&adressedistante1);
    send_to(masock,mess,strlen(mess),&adressedistante2);

    Mais si je veux qu'un send_to ne bloque pas l'autre j'avais penser à faire un select, mais le problème c'est que le select structe des descripteurs / sockets, je dois donc créer x sockets pour x serveurs à contacter ?

    Et si je ne souhaite pas créer autant de sockets, ma seule option est de créer un thread pour chaque demande au serveur y ?

    Merci de votre aide

  2. #2
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par flo_k Voir le message
    puis j'envoie les données comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    sendto(masock,mess,strlen(mess),&adressedistante1);
    sendto(masock,mess,strlen(mess),&adressedistante2);
    Mais si je veux qu'un send_to ne bloque pas l'autre
    un sendto(), ça ne va pas bloquer longtemps (le temps d'émettre la trame). Je ne vois pas où est le problème.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 87
    Par défaut
    Effectivement oui j'y avais pas pensé,
    mais si je remplace send_to par recv_from qu'elle est la méthode à utiliser ?

    Et sinon pour ma première question une idée ?

  4. #4
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par flo_k Voir le message
    Effectivement oui j'y avais pas pensé,
    mais si je remplace send_to par recv_from qu'elle est la méthode à utiliser ?
    Soit un recvfrom() (il n'y a pas de '_' dans les sockets BSD...) par thread, soit un thread avec un select() qui oriente vers le ou les sockets qui ont reçus...

    http://emmanuel-delahaye.developpez.com/reseaux.htm
    http://emmanuel-delahaye.developpez.com/pthreads.htm

    Et sinon pour ma première question une idée ?
    "J'ai donc besoin de l'adresse ip internet du serveur".

    Si tu as le nom : gethostbyname()... C'est aussi expliqué dans mon article sur les réseaux...

Discussions similaires

  1. adresse ip publique (adresse internet)
    Par niglo dans le forum Développement
    Réponses: 5
    Dernier message: 24/03/2006, 10h27
  2. ServerSocket : Utiliser une adresse Internet
    Par hacoeur dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 07/01/2006, 00h09
  3. Télécharger un fichier Zip depuis une adresse internet
    Par jmjmjm dans le forum Web & réseau
    Réponses: 8
    Dernier message: 18/10/2005, 20h12
  4. [LG]Lecture de fichier avec une adresse internet
    Par forbin dans le forum Langage
    Réponses: 8
    Dernier message: 09/02/2005, 20h00
  5. [MFC] Adresse internet
    Par ricky78 dans le forum MFC
    Réponses: 3
    Dernier message: 23/06/2004, 12h48

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