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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Закрыто ли соединение? 
:(
    Опции темы
SickFxck
Дата 16.4.2010, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Читаю данные из сокета. Как понять, что удалённый сервер уже закрыл соединение?

Код

public void ThreadStartHander()
{
    Byte[] data = new byte[102400];

    while (true)
    {
        if (_ListenSocket.Available > 0)
        {
            int _bytesReaded = _ListenNetworkStream.Read(data, 0, Math.Min(_ListenSocket.Available, 102400));
            _SendingNetworkStream.Write(data, 0, _bytesReaded);
        }
        
        Thread.Sleep(10);
    }
}

Такой код будет выполняться "вечно", так как при закрытии соединения _ListenSocket.Available просто всегда будет равен нулю.

Добавлено через 3 минуты и 45 секунд
Таймаут прошу не предлагать, потому что формально это некорректное решение. В wiki написано, что вроде как передаются некие пакеты от сервера клиенту (и наоборот), свидетельствующие о закрытии соединения. Также, может быть, есть какая-то возможность проверить "живо" ли соединение. Как это проверить в C#?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
cully
mr.DUDA
Exception

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

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

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


 




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


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

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