[Python] Socket
Marco De Paoli
depaolim a gmail.com
Gio 14 Lug 2011 23:20:00 CEST
2011/7/14 Simone Ziraldo <simone.ziraldo a gmail.com>
> Se durante lo sleep di 15 secondi chiudo la connessione WiFi il server non
> si accorge di niente e rimane ad aspettare su conn.recv(1024)...come posso
> risolvere questo problema? Avete qualche idea?
>
ehm non si tratta di una connessione wi-fi bensì di una connessione TCP/IP
il fatto che sia wi-fi è un dettaglio implementativo, fosse via cavetto
ethernet il discorso sarebbe esattamente lo stesso
(scusa è che se no sembra che le socket abbiano a che fare esclusivamente
con le connessioni wi-fi quando invece sono un astrazione moolto più
generale generale)
venendo al tuo problema: non mi risulta che sia possibile, per risolvere un
problema simile costringevo il client a mandarmi un pachetto di acknowledge
entro tot secondi
in pratica il ruolo di tale pacchetto era esclusivamente quello di segnalare
"sono ancora vivo"
se il server non riceveva dati o acknowledge entro tot tempo assumeva che il
client fosse morto e chiudeva la socket
adesso non ricordo a memoria i dettagli ma più o meno il giro era quello che
ti ho detto (a parte il fatto che l'avevo fatto in C++ invece che in python)
ora mi viene in mente che il mio caso era leggermente diverso: il problema i
client potevano lanciare elaborazioni potenzialmente grosse sul server
ecco perché sul server avevo messo un thread di monitoring che verificava
che il client fosse ancora vivo, in caso contrario killava l'elaborazione
liberando risorse
just my two cents
Marco
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20110714/ae03ada1/attachment.html>
Maggiori informazioni sulla lista
Python