Подскажите пожалуйста, как узнать об обрыве связи?
Простейший пример: есть сервер и клиент на питоне (TCP):
###############################
from socket import *
s=socket( AF_INET, SOCK_STREAM)
s.connect(('10.1.1.80', 5001))
while 1:
data = s.recv(256)
print data
if not data:
print "close"
s.close()
break
##############################
если сервер закрывает сокет, то все хорошо, печатается "close" и сокет клиента закрывается, а вот если оборвать связь, или например, перезагрузить vmware, то клиент так и остается висеть
единственное , что пришло в голову - сделать сокет неблокирующим , но так как данные могут приходить через произвольный момент времени, то тайм-аут придется сделать большим. А об обрыве связи мне надо узнать сразу, как быть?
Заранее спасибо =)
Ответ на:
комментарий
от ananas

Ответ на:
комментарий
от DonkeyHot

Ответ на:
комментарий
от cavia_porcellus

Ответ на:
комментарий
от ananas

Ответ на:
комментарий
от ananas

Ответ на:
комментарий
от cavia_porcellus
Ответ на:
комментарий
от cavia_porcellus

Ответ на:
комментарий
от DonkeyHot

Ответ на:
комментарий
от ananas

Ответ на:
комментарий
от DonkeyHot

Ответ на:
комментарий
от cavia_porcellus

Ответ на:
комментарий
от cavia_porcellus
Ответ на:
комментарий
от DonkeyHot

Ответ на:
комментарий
от cavia_porcellus
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум прокси с бэкконект и сокеты в питоне (2011)
- Форум неблокируемые сокеты - зделать тунель (2008)
- Форум Консольный обмен сообщениями (2017)
- Форум быстрый возврат из ф-ции connect() (2005)
- Форум Соединится с сервером по сокету? (2020)
- Форум Порт не освобождается после закрытия приложения (2017)
- Форум Обрыв связи (2001)
- Форум Клиент-Сервер Socket linux (Музыкальный сервис) (2014)
- Форум brtun обрыв связи (2009)
- Форум Клиент-Сервер Socket linux (Система обмена сообщениями) (2014)