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:
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:
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.