Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как определить дисконнект клиента, использую TcpListener и TcpClient 
:(
    Опции темы
Black_Wolf
Дата 8.10.2008, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 25.6.2007
Где: Свердловская обла сть

Репутация: нет
Всего: нет



Доброго времени суток.
Пишу серверную часть приложения, используя TcpListener и TcpClient. Но возникла небольшая проблема. На серверной стороне нужно отловить момент дисконекта клиента. Ни где на форуме вариантов решения не нашел, в msdn тоже (наверно плохо искал). Есть вариант использовать таймер для определения времени простоя, и закрывать соединение принудительно по истечении определенного времени. Может кто-нибудь посоветует вариант получше?
PM MAIL ICQ   Вверх
SpaceSpace
Дата 27.10.2008, 08:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 366
Регистрация: 10.4.2007
Где: Самара

Репутация: 2
Всего: 10



Пробуешь клиенту что-то передать и ловиш ексепшн)


--------------------
Репутация - самое ценное, что есть у человека. Зарабатывают годы, теряют за мгновение.
70-565
MCPD Enterprise 3.5 
PM MAIL   Вверх
Black_Wolf
Дата 28.10.2008, 06:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 25.6.2007
Где: Свердловская обла сть

Репутация: нет
Всего: нет



SpaceSpace
Дело в том что в качестве клиента выступает Telnet. Нужно поймать то событие когда окно телнет просто закрывают.
Или меня глючит smile  или мистика smile , но сервер стал определять этот момент при чтении из потока NetworkStream.
Конструкция
Код

while(i = streamClient->Read(buff, 0, buff->Length)){

}

заработала. При неожиданном отключении клиента мы вываливаемся из цикла.
PM MAIL ICQ   Вверх
SpaceSpace
Дата 28.10.2008, 07:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 366
Регистрация: 10.4.2007
Где: Самара

Репутация: 2
Всего: 10



гм. ну и в чем вопрос? ты вывалился из цикла по исключению,  ты его поймал, обработал, все на этом работа закончена.


--------------------
Репутация - самое ценное, что есть у человека. Зарабатывают годы, теряют за мгновение.
70-565
MCPD Enterprise 3.5 
PM MAIL   Вверх
Black_Wolf
Дата 30.10.2008, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 25.6.2007
Где: Свердловская обла сть

Репутация: нет
Всего: нет



SpaceSpace
Вывалился именно не по исключению, а по значению 0, которое вернула функция Read(buff, 0, buff->Length)
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
cully
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, cully, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Распределённые приложения и сеть | Следующая тема »


 




[ Время генерации скрипта: 0.0459 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.