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 :

error bad file descriptor


Sujet :

Réseau/Web Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2012
    Messages : 30
    Points : 9
    Points
    9
    Par défaut error bad file descriptor
    Bonsoir,

    en faisant mon chat en python je suis tomber sur une erreur dans le recv.

    Je ne comprend pas cette erreur, pouvais vous m'aider :
    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
    27
    28
    29
    import sys,os,socket,select 	
    sockEcoute = socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0)  
    sockEcoute.bind(("",8801)) 
    sockEcoute.listen(5) 	
    nbCnxOuvertes = 0
    lecteursPotentiels = [sockEcoute] 	
    first = True 
    while first or nbCnxOuvertes > 0:
    	first = False 
    	readers,writers,errors = select.select(lecteursPotentiels,[],[],60) 
    	for sockPret in readers:
    		if sockPret == sockEcoute: 
    			sockDialogue,(adresse,port) = sockEcoute.accept() 
    			lecteursPotentiels.append(sockDialogue) 
    			print "Nouvelle connexion a partir de l'adresse %s sur le port %d..."%(adresse,port) 
    			nbCnxOuvertes+=1
    		else: 
    			msg=sockPret.recv(1024) 
    			if (len(msg) == 0):
    				print "Message vide. Fermeture de la connexion ..." 
    				sockPret.close() 
    				for i in xrange(1,len(lecteursPotentiels)):
    					if lecteursPotentiels[i] == sockPret: 							lecteursPotentiels.pop(i)
    					nbCnxOuvertes-=  1 
    			else:
    				os.write(1,msg) 
    				sockEcoute.close()
    print "Plus de connexion. Au revoir !"
    sys.exit(0)
    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
    import select, socket, sys,os
     
     
     
     
    rfd=os.open("sol3.txt",os.O_RDONLY)
    IP = 'localhost'
    PORT = 8801 
    ADS = (IP, PORT)
     
    soc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    soc.connect(ADS)
     
    #soc.send(ndu)
    #data=os.read(rfd,1000)
    #soc.send(data)	
    while 1:
     
    	data2 = raw_input("s>>")
    	if  data2=="q" : break
    	soc.send(data2)
    	data2 = soc.recv(1024)
    	if not data2: break
    	print data2
    	soc.close()
    Merci d'avance pour la reponse.

  2. #2
    Membre expérimenté Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Points : 1 728
    Points
    1 728
    Par défaut
    Bonjour,

    je pense que l'erreur est là:msg est défini par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    msg=sockPret.recv(1024)
    comme recv renvoie un string, impossible donc d'écrire dedans....

    Pour une meilleur compréhension du problème merci de poster votre traceback complet à l'avenir.

    Cordialement,

    pacificator.
    "Etre conscient de la difficulté permet de l'éviter.."
    Lao-Tseu.

Discussions similaires

  1. Bad File descriptor avec fcntl
    Par guigui31 dans le forum Débuter
    Réponses: 2
    Dernier message: 21/04/2008, 20h11
  2. Réponses: 0
    Dernier message: 18/11/2007, 20h53
  3. Erreur: bad file descriptor
    Par Bruno51 dans le forum Langage
    Réponses: 10
    Dernier message: 06/09/2007, 16h44
  4. Bad file descriptor avec un read()
    Par je®ome dans le forum C
    Réponses: 2
    Dernier message: 04/04/2006, 19h30
  5. Etrange "Bad file descriptor"
    Par amauryxiv dans le forum Langage
    Réponses: 23
    Dernier message: 01/02/2006, 03h20

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