Форум программистов, компьютерный форум, киберфорум
Python: Сети
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 26.07.2014
Сообщений: 18
1

Как закрыть мертвое соединение

12.04.2015, 18:12. Показов 2500. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ребята подскажите, в документации к питону есть реализация эхо сервера

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import asyncore
import socket
 
class EchoHandler(asyncore.dispatcher_with_send):
 
    def handle_read(self):
        data = self.recv(8192)
        if data:
            self.send(data)
 
class EchoServer(asyncore.dispatcher):
 
    def __init__(self, host, port):
        asyncore.dispatcher.__init__(self)
        self.create_socket(socket.AF_INET, socket.SOCK_STREAM)
        self.set_reuse_addr()
        self.bind((host, port))
        self.listen(5)
 
    def handle_accept(self):
        pair = self.accept()
        if pair is not None:
            sock, addr = pair
            print 'Incoming connection from %s' % repr(addr)
            handler = EchoHandler(sock)
 
server = EchoServer('localhost', 8080)
asyncore.loop()
У меня проблема. Если разрывать соединение с сервером как положено например просто закрыть телнет, то НА сервере можно опознать разрыв соединения через handle_close

А как опознать, что соединение просто порвалось, например сеть пропала и т.д.?
Просто в такой ситуации handle_close не вызывается.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.04.2015, 18:12
Ответы с готовыми решениями:

Прервать соединение и закрыть всю базу данных по нажатию на кнопку
Какие образом можно полностью закрыть открытую ранее базу данных, чтобы можно было открыть другую,...

Как закрыть COM соединение?
Добрый день! УТ 10,3, платформа 8,2 Соединяюсь через СОМобъект с другой базы, все прекрасно,...

Как закрыть соединение с сервером?
При нажатии на кнопку(Connect), клиент берет записи из JTextField'a и отправляет их на сервер....

Как закрыть SqlCommand соединение
Есть программа private void button2_Click(object sender, EventArgs e) // выиграл { ...

2
840 / 478 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
13.04.2015, 08:53 2
CyberSharpo, проверять все соединения по таймауту.
0
0 / 0 / 0
Регистрация: 26.07.2014
Сообщений: 18
13.04.2015, 13:31  [ТС] 3
Спасибо, супер, а ещё можно установить receive_timeout и idle_timeout!
А можно пример?

Добавлено через 4 часа 31 минуту
Как же сделать то?
Задача сводится к тому, что если от клиента не поступало данных в течение 60 секунд, то соединение нужно разорвать и освободить для другого клиента.
0
13.04.2015, 13:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.04.2015, 13:31
Помогаю со студенческими работами здесь

CURL, как отправить запрос и закрыть соединение
Доброго времени суток уважаемые! Подскажите пожалуйста, как с помощью PHP/cURL - выполнить запрос и...

Как закрыть соединение между клиентом и сервером
Как закрыть соединение между клиентом и сервером, не закрывая порт (который открыт не мной)?

Как закрыть соединение с Oracle из другой нитки?
Имеется несколько ниток, конект к Oracle происходит из дочерней нитки. Как закрыть соединение с...

Как преждевременно закрыть соединение?(Выполнение в фоне)
Vk api отправляет мне callback запрос и даёт 10 секунд на ответ и иногда мой скрипт не успевает...

Как корректно закрыть соединение с SQL-сервером?
Здравствуйте! Задача такая - сделать так, чтоб при недоступности сервера SQL, выскакивал месседж и...

Как корректно закрыть соединение TCP на стороне клиента
Код следующий: TcpClient client = new TcpClient(server, port); Byte data ; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru