Socket+timeout

power211 Messages postés 3 Date d'inscription jeudi 20 janvier 2005 Statut Membre Dernière intervention 2 février 2005 - 2 févr. 2005 à 23:39
taz_iup Messages postés 179 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 21 mai 2014 - 22 févr. 2005 à 11:59
Re Bonjour tout lemonde,

bon voila j aurai une ptite question sur les sockets plus les timeout.
Donc je vais directement aller au but avec un exemple comme ca vous comprendrez peut etre mieux. :)

Mettons nous avons un serveur en ecoute sur un port, il attend la connexion d un client.
Le serveur demande un mot de passe pour la connexion au passage.
Je voudrais pouvoir mettre un timeout sur la connexion du client.
C est a dire que si au bout de 5s le client n a pas rentre de passe la connexion est coupe avec lui mais que le serveur ecoute tjrs une autre connexion.
Car le soucis g reussi a mettre un timeout sur le socket lui mm mais ca kill le serveur une fois le timeout passe donc c pas top.
Si qq un avait une idee pour mettre un timeout au moment de la saisie du mot de passe, j veux bien deux trois explications :)

merci
A voir également:

4 réponses

cs_Shinji Messages postés 10 Date d'inscription vendredi 13 décembre 2002 Statut Membre Dernière intervention 6 février 2005
6 févr. 2005 à 22:25
Et si tu met tes 5secs de timeout qd le client saisi le mpd, ça ne règlerai pas ton pb ?

____________________________________________________________
Quand les brebis enragent, elles sont pires que les loups
0
taz_iup Messages postés 179 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 21 mai 2014 3
22 févr. 2005 à 11:50
tu nous mettrai un bout de ton code?
0
taz_iup Messages postés 179 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 21 mai 2014 3
22 févr. 2005 à 11:51
en fait c pour en savoir un peu plus, qu'es ce que tu as deja fait,
comment ( avec 'objet socket oul'obket SocketServer ? ) etc,.... un peu
de tn code sources nous aiderai a te repondre...
0
taz_iup Messages postés 179 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 21 mai 2014 3
22 févr. 2005 à 11:59
apparement si tu utilise l'objet socket pour ton serveur , tu peut utiliser la methode

<nobr><tt class="method" id="l2h-2641" xml:id="l2h-2641">settimeout</tt>(</nobr>,
<var>value</var>)

value est en seconde.

Pour mettre un time out mais pense bien le mettre sur la socket que tu
obtient avec serveur.accept() et pas sur la socket qui ecoute.... ( ici
serveur. )

Autre point , le time out prvoque une exception alors pense a la traiter avec un try except



imoprt socket

#creation de la socket si mes souvenirs sont exacts.

serveur = socket.socket( socket.AF_INET, socket.SOCK_STREAM )

serveur.bind( ... )

serveur.listen( ... )

# on accepte un client

client = serveur.accept()

client.settimeout(5.0)

try:

buffer = client.recv(taille_buffer)

...

except socket.timeout, e:

# e est un objet de type time out et contient le message d'erreur.

# puis traite ton exception par exemple...

print str(e)

client.close()



Voila si ca te suffit...
0
Rejoignez-nous