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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Исключения Socket 
:(
    Опции темы
registered
Дата 17.10.2006, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



есть класс на основе Socket. У него есть методы чтения-записи данных.
как правило они возвращают true/false, но иногда и объекты. Тоесть может возвращаться null при неудачном действии.

Так вот приложению, использующему данный класс нужно по результатам понять - произошло ли все успешно, а при обрыве зделать 
кокие-то действия (например затенить кнопки).

Так вот в чем вопрос - что (а вернее какое исключение) считать обрывам, а на что возврвщать результат.
Например: производится запись в сокет. Если это не удалось по причине неправильных данных или сервер ответил, что неудачно, то вернуть
статус. А если произошел обрыв - то бросить исключение.

З.Ы, Или неправильную передачу тоже считать обрывам ? 
PM MAIL   Вверх
arilou
Дата 18.10.2006, 10:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

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



Цитата(registered @  17.10.2006,  18:34 Найти цитируемый пост)
З.Ы, Или неправильную передачу тоже считать обрывам ?  

По идее, неправильно передачи быть не может, т.к. TCP/IP гаранитирует доставку пакетов. Соотв. если что-то передалось криво, значит произошел сбой в канале, и это скорее всего исключительная ситуация.

Цитата(registered @  17.10.2006,  18:34 Найти цитируемый пост)
Так вот в чем вопрос - что (а вернее какое исключение) считать обрывам, а на что возврвщать результат.

Посмотри в MSDN, какие исключения могут генерировать методы Read, Begin/EndRead и тогда уже будет понятно, как на них реагировать.


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
registered
Дата 18.10.2006, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(arilou @  18.10.2006,  10:56 Найти цитируемый пост)
По идее, неправильно передачи быть не может, т.к. TCP/IP гаранитирует доставку пакетов. Соотв. если что-то передалось криво, значит произошел сбой в канале, и это скорее всего исключительная ситуация.

 тоесть половинчатого пакета быть не может ?

Цитата(arilou @  18.10.2006,  10:56 Найти цитируемый пост)
Посмотри в MSDN, какие исключения могут генерировать методы Read, Begin/EndRead и тогда уже будет понятно, как на них реагировать. 


я использую NetworkStream
для него
Код

catch( EndOfStreamException ...) {...}
catch( IOException...) {...}
catch( SocketException...) {...}


просто не совсем понятно как реагировать на исключения
какое считать обрывом, а какое неправильной передачей.
Или например IOException достаточно для любого случая ?

И как поможет NativeErrorCode ?

Это сообщение отредактировал(а) registered - 18.10.2006, 14:40
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
cully
mr.DUDA
Exception

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

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

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


 




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


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

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