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

Python Discussion :

Connecter 2 (ou +) ordis via internet


Sujet :

Python

  1. #1
    Membre averti
    Homme Profil pro
    Développeur en formation
    Inscrit en
    Juillet 2013
    Messages
    300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en formation
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 300
    Points : 413
    Points
    413
    Par défaut Connecter 2 (ou +) ordis via internet
    Bonjour,
    Je connais Python (du moins je sais programmer, après les différentes libs...) mais je ne connais pratiquement rien du réseau. Il est temps que cela cesse car j'aimerai transformer mon ordi en "serveur" une fois un petit programme lancé. Le but est, dans un premier temps, de créer une sorte de chat. Ce sera la base et je pense pouvoir complexifier après.
    Mais voilà, je n'y connais pratiquement rien. Alors j'ai quelques notions grâce à un livre qui permet d'apprendre les bases du Python. Mon but serait de donc de créer un programme que l'on installerait sur les ordinateurs concernés et qui permettrait de dire "Truc entre dans le salon de chat" quand quelqu'un se connecte en lançant le programme, une fois la connexion acceptée. Il sera possible pour chacun d'envoyer des phrases. Le tout sera en interface graphique. Le mieux serait que chacun ait le même programme pour que tout le monde soit au même niveau et que ce ne soit pas toujours le même qui doive lancer son programme "serveur" en premier mais que tous les programmes soient à la fois "serveurs" et clients. On pourrait ainsi mettre en relation 2, 3, 4, 50 ordinateurs via un Chat plus "sécurisé" que sur Facebook, par exemple.
    J'ai donc besoin d'en connaître plus sur les ports à choisir, sur l'organisation que vous utiliseriez pour le projet et surtout comment connecter les différents ordinateurs entre eux, à partir de leur adresse IP.

    Merci d'avance !
    Bouddha : Tout n'est qu'illusion en ce bas monde.
    Jésus : Tout est amour divin.
    Einstein : Tout est relatif dans cet espace-temps.
    Moi : Tout est binaire sur ce forum.

  2. #2
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 824
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 824
    Points : 7 120
    Points
    7 120
    Par défaut
    Dans ce lien, peut-être des réponses à tes questions...
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    J'ai donc besoin d'en connaître plus sur les ports à choisir, sur l'organisation que vous utiliseriez pour le projet et surtout comment connecter les différents ordinateurs entre eux, à partir de leur adresse IP.
    Peut être commencer par regarder ce que sait faire le module asyncchat.
    Mais sans avoir passe du temps a comprendre comment fonctionnent les sockets est un peu "rapide".
    Pour ce qui est de l'organisation du projet, c'est plutôt du ressort du forum ALM: Python n'est qu'un langage comme tant d'autre.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  4. #4
    Membre averti
    Homme Profil pro
    Développeur en formation
    Inscrit en
    Juillet 2013
    Messages
    300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en formation
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 300
    Points : 413
    Points
    413
    Par défaut
    Merci mais moi et l'anglais ça fait 1 et demi ^^. J'ai tout de même quelques notions de programmation réseau mais ça se limite à échanger des données au sein d'un même ordinateur. J'ai tenté un transfert de chaînes de caractères d'un ordinateur à l'autre, dans un premier temps, en me basant sur le premier lien :
    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
    24
    25
    26
    import socket
    import sys
     
    # Create a TCP/IP socket
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
     
    # Bind the socket to the address given on the command line
    server_address = ('localhost', 10000)
    print (sys.stderr, 'connecté au {} port {}'.format(*server_address))
    sock.bind(server_address)
    sock.listen(1)
     
    while True:
        print (sys.stderr, 'waiting for a connection')
        connection, client_address = sock.accept()
        try:
            print (sys.stderr, 'client connecté :', client_address)
            while True:
                data = connection.recv(16)
                print (sys.stderr, 'received "{}"'.format(data))
                if data:
                    connection.sendall(data)
                else:
                    break
        finally:
            connection.close()
    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
    21
    22
    23
    24
    25
    26
    import socket
    import sys
     
    # Create a TCP/IP socket
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
     
    # Connect the socket to the port on the server given by the caller
    server_address = ('88.567.180.100', 10000)#j'ai mis une fausse adresse ip pour préserver l'annonyma ici
    print (sys.stderr, 'connecting to {} port {}'.format(*server_address))
    sock.connect(server_address)
     
    try:
     
        message = 'Voici le message, il va être répété.'
        print (sys.stderr, 'envoyé "{}"'.format(message))
        sock.sendall(message)
     
        amount_received = 0
        amount_expected = len(message)
        while amount_received < amount_expected:
            data = sock.recv(16)
            amount_received += len(data)
            print (sys.stderr, 'reçu "{}"'.format(data))
     
    finally:
        sock.close()
    J'ai eu beau changer le port (en mettant le 80), enlever le "localhost" du serveur etc, impossible d'établir une connexion entre les 2 ordinateurs. Comment faire ?
    Bouddha : Tout n'est qu'illusion en ce bas monde.
    Jésus : Tout est amour divin.
    Einstein : Tout est relatif dans cet espace-temps.
    Moi : Tout est binaire sur ce forum.

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par stalacta Voir le message
    Merci mais moi et l'anglais ça fait 1 et demi ^^.
    C'est hélas un pré-requis pour se débrouiller un peu en programmation surtout avec l'open source. Il n'y a pas les megabucks d'une multinationale pour traduire documentations, tutos,.... dans différentes langues.

    Ceci dit, il y a un forum réseau sur développez.
    Vous pourriez prendre le temps de regarder ce qu'il contient.
    Vous y trouverez un tutos sur la création d'un chat en Java.
    Ça a l'air bien expliqué et passer de Java a Python n'est pas si difficile.


    Bon courage
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  6. #6
    Membre averti
    Homme Profil pro
    Développeur en formation
    Inscrit en
    Juillet 2013
    Messages
    300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en formation
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 300
    Points : 413
    Points
    413
    Par défaut
    Merci de vos réponses, j'ai ouvert une nouvelle discussion sur un sous-forum plus approprié .
    Bouddha : Tout n'est qu'illusion en ce bas monde.
    Jésus : Tout est amour divin.
    Einstein : Tout est relatif dans cet espace-temps.
    Moi : Tout est binaire sur ce forum.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. timeout lorsque connecté via Internet
    Par man333 dans le forum Connexion aux bases de données
    Réponses: 0
    Dernier message: 29/04/2009, 22h51
  2. [VB6]se connecter à ma BD ACCESS via Internet
    Par hhafid dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 02/02/2006, 03h50
  3. Réponses: 6
    Dernier message: 02/12/2005, 12h04
  4. Réponses: 6
    Dernier message: 09/04/2005, 11h20

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