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 :

Webservice depuis un autre poste


Sujet :

Réseau/Web Python

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    196
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 196
    Points : 62
    Points
    62
    Par défaut Webservice depuis un autre poste
    Bonjour,

    Je fais actuellement des tests pour créer des webservices (un simple affichage de HelloWorld) avec SOAPpy.
    J'ai récupéré un tuto assez simple qui fonctionne très bien en local, par contre si j'essaie de dialoguer depuis un autre poste, ça ne fonctionne pas.

    En local, j'interroge le serveur avec cette commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    client = SOAPpy.SOAPProxy("http://localhost:8011")
    Par contre, comment faire sur un autre poste (j'ai essayé de remplacé localhost par l'IP mais sans succès...).

    Merci.
    Quand tu regardes vers le Nord, t'as le "Sud au cul" ...

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 273
    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 273
    Points : 36 757
    Points
    36 757
    Par défaut
    Salut,

    Cela doit fonctionner de la même façon modulo que l'identifiant passé soit "bon".

    Après c'est (peut être) un problème de sécurité côté stack IP du coté serveur: un PC est généralement équipé d'un parefeu qui filtre les demandes de connexion entrantes. Le réseau être client est serveur peut aussi avoir proxy et parefeu qui "troublent".

    Rien de spécifique à la programmation Python.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    196
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 196
    Points : 62
    Points
    62
    Par défaut
    Merci pour la réponse, mais j'ai toujours le problème...

    Sur mon serveur serveur.truc.fr avec l'IP X.X.X.X, j'ai un fichier python qui contient la fonction helloworld.
    Dans ce fichier, je fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    server=SOAPpy.SOAPServer(("127.0.0.1",8011))
    Au niveau du client, j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    client = SOAPpy.SOAPProxy("X.X.X.X:8011")
    Ca ne fonctionne pas, même en local. Ca ne marche que si je met localhost à la place de X.X.X.X.

    C'est comme ça que c'est censé fonctionner ? Comment est-ce qu'on dit dans quel répertoire se trouve le fichier py à utiliser (là où se trouve les fonctions) ?

    Merci d'avance
    Quand tu regardes vers le Nord, t'as le "Sud au cul" ...

  4. #4
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    196
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 196
    Points : 62
    Points
    62
    Par défaut
    J'ai remplacé dans le fichier python sur le serveur le 127.0.0.1 par l'IP du serveur.

    En local, ca fonctionne bien en mettant l'adresse IP du serveur dans le SOAPProxy, mais sur un autre poste, ça bloque.
    En debug, j'ai
    puis ça à l'air d'attendre la réponse...
    Quand tu regardes vers le Nord, t'as le "Sud au cul" ...

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 273
    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 273
    Points : 36 757
    Points
    36 757
    Par défaut
    Si vous configurez le serveur pour qu'il ne réponde qu'aux requêtes de connexions faites sur le port 8011 de "localhost"...
    Pourquoi espérer que le client puisse s'y connecter autrement?

    C'est comme ça que c'est censé fonctionner ?
    Il doit y avoir de bon tutoriels dans le forum "réseau".

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

  6. #6
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    196
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 196
    Points : 62
    Points
    62
    Par défaut
    OK, merci pour la réponse.
    Et comment on peut dire au serveur de répondre à n'importe qui, pour qu'un client lambda puisse communiquer avec lui ?
    Il ne faut pas que les 2 adresses dans SOAPProxy et SOAPServer soient les mêmes ?

    J'ai bien regardé les tuto, mais soit le cas est très simple (client et serveur sur même machine, ça je sais faire...) ; soit c'est bien plus complexe avec des modèles xsd, des namespace... des choses dont je ne veux pas me soucier pour l'instant .
    Quand tu regardes vers le Nord, t'as le "Sud au cul" ...

  7. #7
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 273
    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 273
    Points : 36 757
    Points
    36 757
    Par défaut
    Citation Envoyé par Enthau Voir le message
    Et comment on peut dire au serveur de répondre à n'importe qui, pour qu'un client lambda puisse communiquer avec lui ?
    A priori via:
    server=SOAPpy.SOAPServer((socket.gethostname(),8011))

    Citation Envoyé par Enthau Voir le message
    J'ai bien regardé les tuto, mais soit le cas est très simple (client et serveur sur même machine, ça je sais faire...) ; soit c'est bien plus complexe avec des modèles xsd, des namespace... des choses dont je ne veux pas me soucier pour l'instant .
    Avant de pouvoir échanger XSD ou autres messages, client et serveur doivent avoir établi une connexion TCP (ou UDP).
    Cette mécanique est (heureusement) la même pour toutes les "sockets" réseau et passe par "socket.bind" et est documentée ici
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  8. #8
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    196
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 196
    Points : 62
    Points
    62
    Par défaut
    Nickel, après avoir ouvert les ports qui vont bien et donner les droits qu'il faut, ça fonctionne enfin... un grand merci.

    J'avais une dernière petite question : mon fichier sur le serveur qui répond à une demande du client est en .py, et actuellement je le lance avec la commande
    Ca tourne en permanence et attend qu'on le coupe à la main. Comment faire pour qu'il s'exécute en permanence, en fond (sans avoir à le lancer à la main) ? Un cron marcherait-il ?
    Merci.
    Quand tu regardes vers le Nord, t'as le "Sud au cul" ...

  9. #9
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 273
    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 273
    Points : 36 757
    Points
    36 757
    Par défaut
    Citation Envoyé par Enthau Voir le message
    Ca tourne en permanence et attend qu'on le coupe à la main. Comment faire pour qu'il s'exécute en permanence, en fond (sans avoir à le lancer à la main) ? Un cron marcherait-il ?
    Je suppose que si vous me parlez de "cron" vous êtes sous Linux.
    Techniquement "cron" est un ordonnanceur pour lancer des programmes à intervalles réguliers. Je ne suis pas certain que ce soit le "bon" outil pour lancer les process permanents appelés daemon.
    Jetez un oeil au PEP 3143 qui documente l'API de lancement d'un daemon sous Python.
    Je ne sais pas pourquoi le module n'a pas été intégré dans la PSL (il y a peut être un gros bug mais pas le temps de faire des recherches). Il est dispo sur PyPi

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

  10. #10
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    196
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 196
    Points : 62
    Points
    62
    Par défaut
    Bonjour,

    Comme mon WS fonctionne bien, je voulais pousser un peu plus la chose.
    Je voulais ajouter une authentification, côté serveur ; soit par identifiant/mdp, soit par restriction ip sur le client. Par contre je ne trouve aucun tuto sur l'authentification et soappy.server.
    Est-ce que quelqu'un a déjà fait une telle manip ?

    Merci.
    Quand tu regardes vers le Nord, t'as le "Sud au cul" ...

Discussions similaires

  1. Réponses: 1
    Dernier message: 17/02/2012, 09h47
  2. [Wamp] Se connecter au serveur depuis l'autre poste
    Par xianxian620 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 10
    Dernier message: 26/08/2011, 22h37
  3. Connexion au serveur depuis un autre poste
    Par marcandre dans le forum Réseau
    Réponses: 2
    Dernier message: 21/02/2009, 13h31
  4. Réponses: 1
    Dernier message: 01/08/2007, 16h25
  5. [EasyPHP] connexion serveur apache depuis un autre poste
    Par kcizth dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 21/12/2005, 09h15

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