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 :

Stocker des information temporairement sur le web


Sujet :

Réseau/Web Python

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 56
    Points : 17
    Points
    17
    Par défaut Stocker des information temporairement sur le web
    Bonjours,

    Je crée un jeu et j'aimerais le mettre en ligne. Pour cela il faut que l'ordi1 envoie des information (positionJ1 : x,y,z)et en récupère de l'ordi2 (positionJ2 : x,y,z) et vis-versa pour l'ordi2. Le problème est qu'il faut écrire ces informations et que ce soit rapide. Je pensais créer un chat pour les écrire facilement ensuite les récupérer mais le récupérage est assez complexe...

    Avez vous une idée ?

    Merci

  2. #2
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Avec Python, on a des possibilités de construire des petits "client-serveur" réseau simples en UDP ou en TCP. L'accès se fait par un numéro de port, et le serveur peut donc être installé même sur une machine qui a déjà un serveur web comme apache.

    J'ai fait quelques exemples de base ici:

    http://python.jpvweb.com/mesrecettes...mmation_reseau

    Tyrtamos
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 56
    Points : 17
    Points
    17
    Par défaut
    Merci beaucoup, je lis tout ça :p

  4. #4
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 56
    Points : 17
    Points
    17
    Par défaut
    J'utilise le 1er scipt proposé. J'ai juste un problème avec les adresse :
    Avec le serveur, lorsque je change l'adress ' ' avec par exemple '192.168.0.99' :

    Traceback (most recent call last):
    File "<interactive input>", line 1, in <module>
    File "<string>", line 1, in bind
    error: (10049, "Can't assign requested address")

  5. #5
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Désolé, je n'avais pas vu que tu posais une question.

    Au départ, je pensais que dans le réglage du serveur UDP, l'adresse IP, initialisé dans mon exemple à "", était l'adresse d'écoute. En fait, non: si je mets autre chose que "" ou l'adresse IP de la machine qui porte le serveur (chez moi = 192.168.0.99), j'ai la même erreur que toi.

    Mais avec "", ça marche très bien: pourquoi donc veux-tu changer cela?

    Tyrtamos
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  6. #6
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 56
    Points : 17
    Points
    17
    Par défaut
    Donc pour le client on doit mettre son adresse IP ?

    PS : si oui, comment fait on pour obtenir à l'aide d'un script l'adresse IP de l'ordinateur utilitaire du script ?

    rePS : quand je met mon adrsse IP j'obtient :
    line 30, in <module>
    reponse, adr = monSocket.recvfrom(buf)
    error: (10054, 'Connection reset by peer')

    Merci beaucoup

  7. #7
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    Pour le serveur UDP: tu laisses ""

    Pour le client UDP: tu mets, bien sûr, l'adresse IP du serveur que le client veut atteindre, surtout s'il y a plusieurs serveurs! L'adresse de mon serveur est "192.168.0.99", mais tu dois l'adapter à ton contexte comme je l'ai dit dans mon tuto.

    Cela suppose, bien sûr des adresses IP fixes, mais si ce n'est pas le cas, un nom de domaine (même avec no-ip ou dyndns) devrait être possible.

    Ok?

    Tyrtamos
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  8. #8
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 56
    Points : 17
    Points
    17
    Par défaut
    OK ça marche

    Le seul éventuel soucis qui n'en est pas un auquel j'ai pensé est que : Si je met mon IP, les gens ne peuvent jouer que quand j'ai connecté le serveur grace à mon ordi. Mais donc, est-il possible, grace à un serveur, de faire tourner le programme 24h/24h ?
    'c'était juste une question comme ça, le jeu n'est pas destiné à la grande distribution^^).

    Merci sinon c'est perfect, exactement ce que je cherchais.

  9. #9
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Je suis ravi que ça fonctionne .

    Si tu veux avoir un serveur qui fonctionne vraiment tout le temps, il y a une autre solution: utiliser un hébergement qui permet les scripts (CGI ou non) php ou python. et programmer une application qui serait en tampon entre les utilisateurs pour l'échange de données. Mais ce n'est plus le même projet...

    Tyrtamos
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  10. #10
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 56
    Points : 17
    Points
    17
    Par défaut
    OK,

    De toute façon c'était juste pour afficher les serveur disponible et importer leur IP. Mais je pense que je ferais ça qu'avec des amis et on pourra donc prévoir à l'avance ...

    Enfin encore merci beaucoup

  11. #11
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 56
    Points : 17
    Points
    17
    Par défaut
    Deux nouvelles questions :
    -tout les serveurs-client proposés sont en résaux local ?
    -J'ai remarqué que mon IP changeait régulièrement, y a-t-il un moyen de l'importer avec python ?

    Merci

  12. #12
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    Jusqu'à présent, je n'ai utilisé cela que dans un réseau local, mais il n'y a pas de raison que ça ne marche pas avec Internet.

    Dans un réseau local et avec le module socket, on récupère le nom et l'adresse IP de la machine de la façon suivante:

    print gethostname() # renvoie le nom de la machine (="hostname")

    print gethostbyname(gethostname()) # renvoie l'adresse IP

    Avec Internet, il est courant que le fournisseur d'accès change l'adresse IP à chaque connexion. Il existe des astuces en passant par dyndns (http://www.dyndns.com/) ou par no-ip (http://www.no-ip.com/) (il y en a peut-être d'autre) pour obtenir une adresse internet de type "http://unnomadeclarer.dyndns.org". Cela suppose que l'ordinateur en question, ou le routeur, renseigne dyndns à chaque changement d'adresse IP.

    Tyrtamos
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  13. #13
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 56
    Points : 17
    Points
    17
    Par défaut
    je vais méditer sur la question xD

  14. #14
    Expert éminent sénior
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Points : 10 067
    Points
    10 067

  15. #15
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 56
    Points : 17
    Points
    17
    Par défaut
    merci beaucoup

  16. #16
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 56
    Points : 17
    Points
    17
    Par défaut
    En faisant des recherches à se sujet, j'ai vu que l'on pouvait changer son IP manuellement :

    pour changer ip :
    1- Démarrer/programmes/accessoires/invite de commandes
    Start/All Programs/Accessories/Command Prompt

    2- il est supposeé d'être marqué: C:\Documents and Settings\(nom de la session)>
    il faut ajouter: ipconfig/release


    3- maintenant vous devez aller dans le panneau de configuration (control panel)
    et cliquez sur "connexions réseau et internet"(network and internet connections)
    et ensuite sur "connexions réseau"(network connections).

    4- vous devez maintenant cliquez sur le bouton de droite de votre sourie sur
    "connexion au réseau local"(LAN or high-speed internet) et cliquez sur "propriétés"

    5- cliquez sur "protocole internet(TCP/IP)" et ensuite sur "propriétés"

    6- cliquez dans la bulle "Utiliser l'adresse IP suivante:" et marquez n'importe
    quelle chiffre dans la premiere ligne "Adresse IP:" et cliquez dans un espace de
    "masque de sous-réseau" et des chiffre son suposer d'aparaitre(si sa ne fonction
    pas marquez n'importe quel chiffre sa ne dérange pas) cliquez sur "OK" et "fermer"
    dans l'autre fenêtre pour tout fermer.

    7- répétez les étapes 4 et 5


    8- cliquez sur "obtenir une adresse IP automatiquement"(Obtain an IP address
    automatically) et sur "obtenir les adresses des serveurs DNS automatiquement"
    (Obtain DNS server address automatically) et cliquez sur "OK" et "fermer" dans
    l'autre fenêtre pour tout fermer.

    9- revenez maintenant à la première fenêtre "invite de commandes" ajouter:
    ipconfig/renew
    (personnellement je n'y arrive pas ...)

    Il y a -t-il un moyen de changer son IP manuellement avec Python ?
    Sinon pour le faire marcher sur internet il n'y à rien à changer ? (j'avais essayé avec un ami mais on n'avait pas réussi)

Discussions similaires

  1. Réponses: 3
    Dernier message: 13/03/2011, 11h21
  2. Supprimer des fichiers listés sur page web
    Par Invité dans le forum Langage
    Réponses: 3
    Dernier message: 18/04/2007, 12h04
  3. Réponses: 2
    Dernier message: 22/05/2006, 16h44
  4. Extraire des informations d'une page web
    Par lr dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 28/03/2006, 12h38

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