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 :

[socket] Bloqué lors de la lecture


Sujet :

Réseau/Web Python

  1. #1
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2004
    Messages
    723
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 723
    Points : 923
    Points
    923
    Par défaut [socket] Bloqué lors de la lecture
    Je fais quelques petits tests avec les sockets et j'ai fait un petit script de dialogue simple
    La réception fonctionne, mais le script ne me rend pas la main (raw_input)

    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
     
    host="127.0.0.1"
    port=8001
    s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.bind((host, port))
     
    while 1:
    	s.listen(1)
    	conn, addr=s.accept()
    	print "Connexion de %s (port %i)" % addr
    	while 1:
    		while 1:
    			data=conn.recv(1024)
    			if not data:
    				break
    			print data
    		cmd=raw_input("> ")
    		if cmd=="":
    			break
    		conn.send(cmd)
    	print "Déconnexion de %s (port %i)" % addr
    	if raw_input("Tapez q pour quitter: ")=="q":
    		break
    conn.close()
    s.close()

  2. #2
    Membre averti
    Avatar de Alain_72
    Inscrit en
    Août 2004
    Messages
    180
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 180
    Points : 342
    Points
    342
    Par défaut
    Essayes comme ça :

    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
    # -*- coding: iso-8859-1 -*-
    import socket
     
    host="127.0.0.1"
    port=8001
    s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.bind((host, port))
     
    while 1:
      s.listen(1)
      conn, addr=s.accept()
      print "Connexion de %s (port %i)" % addr
      while 1:
        data=conn.recv(1024)
        if not data:
          break
        print data
        cmd=raw_input("> ")
        if cmd=="":
           break
        conn.send(cmd)
      print "Déconnexion de %s (port %i)" % addr
      if raw_input("Tapez q pour quitter: ")=="q":
        break
    conn.close()
    s.close()
    Tu avais une boucle while de trop, et les lignes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        cmd=raw_input("> ")
        if cmd=="":
           break
        conn.send(cmd)
    devaient être indentées au même niveau que ton "data=conn.recv()"

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/08/2010, 17h41
  2. Réponses: 2
    Dernier message: 28/01/2010, 17h31
  3. Probleme de memoire lors de la lecture d'une socket
    Par arover dans le forum Réseau
    Réponses: 4
    Dernier message: 02/04/2008, 21h02
  4. Réponses: 12
    Dernier message: 21/02/2006, 12h47
  5. Réponses: 1
    Dernier message: 23/02/2004, 13h58

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