Проблема с методом Send у класса System.Net.Sockets.Socket
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Проблема с методом Send у класса... Expand / Collapse
Автор
Сообщение
28.06.2006 15:42
Forum Member

Forum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum Member

участник
Last Login: 24.10.2006 18:16
Сообщ.: 27, Visits: 279
Привет всем!

Вот фрагмент кода:

private Socket FSocket;

protected override void OnProcess(object message)

{

    try

     {

          FSocket.Send((byte[])message);

     }

     catch(Exception ex)

     {

          Connected = false;

     }

}

Так вот, столкнулся с проблемой, что не смотря на то, что соединение закрыто принимающей стороной, метод Send(byte[]) не вызывает Exception, а спокойненько выполняется. Exception может произойте несколько позже, скажем на 4-5 сообщении после разрыва связи, а может и вообще не произойти! Как я понимаю, все равно происходит какая-то буферизация, но не до бесконечности же? Кстати, проверка флага Connected у объекта Socket ничего не дает, флаг показывает true и все тут :( Может быть я что-то неправильно сделал? Кто подскажет, как разрулить эту ситуацию?

ЗЫ В Блоке catch() Connected - это свойтсво класса, которому принадлежит метод OnProcess и к Socket.Connected никакого отношения не имеет.

Сообщ. #899806
28.06.2006 16:00
Forum Member

Forum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum Member

участник
Last Login: 24.10.2006 18:16
Сообщ.: 27, Visits: 279
Все, дошло, почему так происходило.  Сокет был в режиме NonBlocking. Эх, блин, а ларчик просто открывался, впрочем, как всегда.

Сорри всем за беспокойство :)

Сообщ. #899808
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl, Alexey Spirin

Время GMT +3:00, Сейчас 2:21