Уведомления

Jabber-конференция сообщества: pythonua@conference.jabber.ru

#1 Март 31, 2007 13:50:41

at
От:
Зарегистрирован: 2007-03-31
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

обрыв связи и сокеты

Ситуация такая
есть многопочный сервер, от ждет от клинтов соедения, если все нормально ты вызывает функцию А, при нормальном отключении клиента вызывается функция Б.

пробелема
нужно при пропадании связи между клинтом и вервером вызывать туже функцию Б
как это можно реализовать, нужен просто алгоритм проверки живой ли клинт



Офлайн

#2 Март 31, 2007 17:47:34

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2170
Репутация: +  36  -
Профиль   Отправить e-mail  

обрыв связи и сокеты

сделай как в ирц ping-pong - посылка пинг пакета, на который клиент отвечает понг подтверждением)

Офлайн

#3 Апрель 1, 2007 16:39:50

at
От:
Зарегистрирован: 2007-03-31
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

обрыв связи и сокеты

Пасиба за идею, с самой реализвцией ping-pongа все понятно но вот где и как вызывть это функцю
порожденный поток примено такой структуры

def Client(connection,cip):
while 1:
try:
data = connection.recv(1024)
if not data: break
else:
делаем чтото с data
если все нормально то вызывам A
иначе Б
except:
вызывавем Б

было бы все нормально ели бы физический обрыв связи вызывал исключение
а так что клиетн что сервер ждут друг друга,
как вызвать вызывать ping_pong() если connection.recv(1024)
постоянно ждет данных останавливая выполнение



Офлайн

#4 Апрель 1, 2007 16:53:16

russian_knight
От:
Зарегистрирован: 2007-03-27
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

обрыв связи и сокеты

at
как вызвать вызывать ping_pong() если connection.recv(1024)
постоянно ждет данных останавливая выполнение
Запустить в отдельном потоке или можно использовать event-driven фреймворки типа twisted.



Офлайн

#5 Апрель 2, 2007 09:23:59

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2170
Репутация: +  36  -
Профиль   Отправить e-mail  

обрыв связи и сокеты

глянь http://www.mischiefblog.com/?p=203 , у самого ща нет времени, сорри

Офлайн

#6 Апрель 2, 2007 11:20:00

at
От:
Зарегистрирован: 2007-03-31
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

обрыв связи и сокеты

пасиба, пасиба, спросони мне кажется что это какраз что надо )
как апрснусь буду пробывать



Офлайн

#7 Апрель 2, 2007 11:54:57

at
От:
Зарегистрирован: 2007-03-31
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

обрыв связи и сокеты

at
When I detect that 0 bytes were read from a readable socket, assume that the socket was closed.
мдя, это несовсе то как я себе вижу, это прокатит при активной передачи данных, а уменя данные передаются 1 раз, и пока весит сокетное соеденение что то происходит на сервере, как только его нет пожеланию клиента либо по обрыву связи поток умерает



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version