[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