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 :

Probléme de socket "interne"


Sujet :

Réseau/Web Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 7
    Par défaut Probléme de socket "interne"
    Bonsoir !
    (Contexte: server en python, qui sous traite les requêtes des client via des processus .forkqués())

    Je cherche a faire un socket qui puisse étre écrit par les "fils" et lu par le processus "pére"

    J'ai déclaré le socket comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    cleanerSockLocation = "/tmp/PYTHON_cleanerSock_BIND"
    if os.path.exists(cleanerSockLocation): os.remove(cleanerSockLocation)
    cleanerSockIn = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
    cleanerSockIn.bind(cleanerSockLocation)
    cleanerSockIn.listen(1)
    Mais je rencontre des probléme quands j'essaye d'écrire dessus :
    socket.error: (107, 'Transport endpoint is not connected')

    Je comprends mal l'erreur, si quelque peu m'éclairer ça serai gentil

    EDIT :
    Le socket est bien déclaré pour cet usage ; P ? Ou je re utilise un AF_INET sur un autre port :/ ?

    Mci, Ciao
    (ps: 1ier message )

  2. #2
    Membre émérite
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Par défaut
    Le mieux pour une connexion à sens unique, ce sont les pipes. (Un socket est une paire de pipes).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    >>> import os
    >>> read, write = os.pipe()
    >>> os.write(write, "Salut")
    5
    >>> os.read(read, 5)
    'Salut'
    Mais si tu tiens à utiliser des sockets, voici le scénario:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    # Setup cleanerSock: init, bind, listen
    client, (chost, cport) = cleanerSock.accept()
    client.send(data)
    C'est bien sur le socket client que tu dois écrire, et non sur cleanerSock qui n'est effectivement connecté à rien.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 7
    Par défaut
    Merci de ta réponse,
    un pipe est en effet plus adapté

Discussions similaires

  1. Problème sur Request.ServerVariables("QUERY_STRING"
    Par PrinceMaster77 dans le forum ASP
    Réponses: 3
    Dernier message: 25/03/2005, 11h47

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