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) |
Partager