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/Web Python Discussion :

[IP ?][Socket] Serveur/Client sur Internet.


Sujet :

Réseau/Web Python

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 3
    Points : 1
    Points
    1
    Par défaut [IP ?][Socket] Serveur/Client sur Internet.
    Bonjour !

    J'ai appris il y a pas tres longtemps a utiliser les sockets... Mais un problème persiste:

    Je n'arrive pas a joindre deux PC sur le WEB... Déjà qu'en local c'est bancal...

    Pour le Local, voila ce que je fait (Strict Minimum, juste pour la démarche...):

    Serveur:
    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
     
    from socket import *
     
    HOST = "192.168.1.11"
    PORT = 5000
     
    Socket = socket(AF_INET, SOCK_STREAM)
    Socket.bind((HOST, PORT))
    Socket.listen(5) # A quoi correspond la valeure 5 exactement ?
    print "En attente de connection..."
    Connexion, Adresse = Socket.accept()
    print "Ok\n"
    MsgC = Connexion.recv(1024)
     
    while 1:
            print "C>", MsgC
            if MsgC == "fin":
                    break
            MsgC = Connexion.recv(1024)
     
    Connexion.close()
     
    raw_input("Fin")
    Client:
    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
     
    from socket import *
     
    HOST = "192.168.1.11"
    PORT = 5000
     
    Socket = socket(AF_INET, SOCK_STREAM)
    print "Connection..."
    Socket.connect((HOST, PORT))
    print "Ok\n"
     
    while 1:
            MsgToS = raw_input("S< ")
            Socket.send(MsgToS.encode()) # Le ".encode()" est useless ?
            if MsgToS == "fin":
                    break
     
    Socket.close()
     
    raw_input("Fin")
    Testé et fonctionnel (Sur un seul ordinateur... Mais un précédant test m'a prouvé qu'il marchait sur deux ordis en réseau local...)

    La question est: Comment dois-je m'y prendre pour passer par Internet ? Quel Ip dois-je rentrer ? Comment est-ce que je peux la connaitre ?

  2. #2
    Membre éprouvé
    Avatar de afranck64
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 592
    Points : 1 006
    Points
    1 006
    Par défaut
    Je pense que l un des Pcs (le second a se connecte) doit connaitre l adresse du "serveur". Le serveur, quant a lui, a juste a se connecter sur lui meme (127.0.0.1)

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 439
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 439
    Points : 37 030
    Points
    37 030
    Par défaut
    Salut,

    Citation Envoyé par afranck64 Voir le message
    Je pense que l un des Pcs (le second a se connecte) doit connaitre l adresse du "serveur". Le serveur, quant a lui, a juste a se connecter sur lui meme (127.0.0.1)
    Le "server" ne se connecte à rien: il accepte et traite les demandes de connections. Un serveur (le système sur lequel tourne le serveur) peut avoir plusieurs interfaces ethernets et plusieurs adresses IP associées à une même interface. Il peut être "intéressant" de préciser si on accepte les demandes de tout ou pas.

    La question est: Comment dois-je m'y prendre pour passer par Internet ? Quel Ip dois-je rentrer ? Comment est-ce que je peux la connaitre
    Lorsque vous tapez l'URL "http://www.developpez.net", votre navigateur préféré ouvrira une socket vers un des serveurs du sites et récupérera la page d'accueil.
    Le HOST est "www.developpez.net", le PORT est 80.
    Mais je dirais que si vous ne savez pas trop c'est que vous devez encore passer du temps à comprendre les bases d'un réseau -- qui n'ont rien à voir avec "programmer".

    Bon courage,
    - W

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    En fait, tout ce que j'essaye de faire est de trouver l'IP correspondant seulement a mon ordinateur (le serveur...) et de la rentrer dans la méthode 'bind'.

    En l’occurrence si je tape "mon ip" sur Google, je trouve effectivement mon IP. Mais elle est la même pour tous les ordinateurs sur le réseau (Connectés au modem de mon FAI). Mais si jamais, ô grand malheur, si jamais je met cet IP dans la variable HOST du script du serveur, python m'envoie une jolie erreur...
    Normal me dis-je, mais ça ne m'aide toujours pas ^^

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 439
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 439
    Points : 37 030
    Points
    37 030
    Par défaut
    Citation Envoyé par Speedlight Voir le message
    En fait, tout ce que j'essaye de faire est de trouver l'IP correspondant seulement a mon ordinateur (le serveur...) et de la rentrer dans la méthode 'bind'.
    Vous ne devriez pas avoir à préciser le HOST dans le bind.

    En l’occurrence si je tape "mon ip" sur Google, je trouve effectivement mon IP. Mais elle est la même pour tous les ordinateurs sur le réseau (Connectés au modem de mon FAI). Mais si jamais, ô grand malheur, si jamais je met cet IP dans la variable HOST du script du serveur, python m'envoie une jolie erreur...
    Normal me dis-je, mais ça ne m'aide toujours pas ^^
    Pour rendre votre "serveur" qui est dans un subnet 192. accessible depuis internet, il faut mettre des services réseau entre Internet et votre "serveur" qui n'ont rien à voir avec la programmation Python.

    - W

  6. #6
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci bien ! Je vais voir a ça...

    PS: Pour l'IP dans la variable HOST du serveur en fait j'avais "appris" comme ça... Donc je note !

    PPS: Et mes connaissances en structures reseaux sont... comment dire... Disons que ça m'aurait carrement arrangé que l'on puisse "tout" configurer depuis Python ^^

  7. #7
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 439
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 439
    Points : 37 030
    Points
    37 030
    Par défaut
    Salut,
    Essayez de regarder ce qui parle de dyndns çà à le mérite de proposer des solutions qui ne sont peut être pas ce que vous voulez.
    - W

  8. #8
    Membre régulier Avatar de Lujeni
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 52
    Points : 82
    Points
    82
    Par défaut
    Cela n'est pas une réel réponse à ton post mais je te conseil par expérience d'aller jeter un coup d'oeil à 0MQ si tu travailles avec des sockets. La documentation est très bien fournis en exemple/explication, de plus sa mise en place est encore plus simple que le module socket classique je trouve. Pour les performances, ça envois du lourd

Discussions similaires

  1. Réponses: 6
    Dernier message: 14/10/2014, 13h00
  2. Probleme J2E requete HTTP vers serveur tomcat sur internet.
    Par helpmeplzzz dans le forum Cloud Computing
    Réponses: 0
    Dernier message: 07/09/2013, 13h54
  3. (Sockets) Serveur / Client(s)
    Par bokobok dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 24/10/2010, 12h58
  4. communiction socket serveur client
    Par zougagh dans le forum Entrée/Sortie
    Réponses: 0
    Dernier message: 27/11/2009, 23h37
  5. Réponses: 6
    Dernier message: 25/08/2006, 21h01

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