Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Network
  • » Как закрыть подключение на сервере, не сообщая клиенту? [RSS Feed]

#1 Окт. 22, 2009 20:04:03

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Как закрыть подключение на сервере, не сообщая клиенту?

Вопрос такой.
Есть самописный сервер на socket, к нему обращается клиент, отправляет данные.
После получения данных надо закрыть подключение на сервере, но клиенту об этом не сообщать.
Как это можно сделать?

Отредактировано (Окт. 22, 2009 20:04:25)

Офлайн

#2 Окт. 22, 2009 21:07:14

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Как закрыть подключение на сервере, не сообщая клиенту?

В смысле? close без shutdown?



Офлайн

#3 Окт. 23, 2009 01:15:28

alrond
От:
Зарегистрирован: 2006-11-15
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Как закрыть подключение на сервере, не сообщая клиенту?

По типу iptables tarpit, только на верхних уровнях?



Офлайн

#4 Окт. 23, 2009 16:15:41

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Как закрыть подключение на сервере, не сообщая клиенту?

Не совсем, если я сделаю close, то, насколько я понимаю, клиент тоже “отвалится”.
alrond
Именно.

Офлайн

#5 Окт. 23, 2009 17:31:36

ZZZ
От: Москва
Зарегистрирован: 2008-04-03
Сообщения: 2161
Репутация: +  26  -
Профиль   Адрес электронной почты  

Как закрыть подключение на сервере, не сообщая клиенту?

Если не секрет, зачем такое понадобилось?

P.S. А может задействовать os.system('iptables … TARPIT') (ну или что-нить близкое)?



Офлайн

#6 Окт. 23, 2009 18:32:59

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Как закрыть подключение на сервере, не сообщая клиенту?

Не секрет - способ избежать подбора паролей к аккаунтам создавая большие таймауты, но с освобождением своих ресурсов.
Не пойдёт, надо кроссплатформенное, или, как минимум, под мастдай.

Офлайн

#7 Окт. 23, 2009 21:43:58

ZZZ
От: Москва
Зарегистрирован: 2008-04-03
Сообщения: 2161
Репутация: +  26  -
Профиль   Адрес электронной почты  

Как закрыть подключение на сервере, не сообщая клиенту?

Думаю, что на таком уровне ничего нет. По крайней мере я не встречал точно.
ИМХО, надо брать Си и писать для сетевого ядра конкретной ОСи. Кстати нечто подобное не помешает сообществу.

Ferroman
Не пойдёт, надо кроссплатформенное, или, как минимум, под мастдай.
Ну да, если говорить об освобождении своих ресурсов, то точно не пойдёт. :-)))



Офлайн

#8 Окт. 23, 2009 23:44:41

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

Как закрыть подключение на сервере, не сообщая клиенту?

Ferroman
Не секрет - способ избежать подбора паролей к аккаунтам создавая большие таймауты
А не проще ли использовать стандартные методы? Ограничить кол-во попыток, например.



Офлайн

#9 Окт. 24, 2009 00:08:46

pasaranax
От:
Зарегистрирован: 2009-06-13
Сообщения: 574
Репутация: +  0  -
Профиль   Отправить e-mail  

Как закрыть подключение на сервере, не сообщая клиенту?

А что если запускать соединение отдельным потоком, а потом убивать его девятым сигналом?



Офлайн

#10 Окт. 24, 2009 02:35:32

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Как закрыть подключение на сервере, не сообщая клиенту?

Из стандартного socket такого не выжать.
На винде closesocket неявно вызывает shutdown. Сильно облегчает программирование - но только не в вашем случае.



Офлайн

  • Начало
  • » Network
  • » Как закрыть подключение на сервере, не сообщая клиенту?[RSS Feed]

Board footer

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

Powered by DjangoBB

Lo-Fi Version