Информация об изменениях

Сообщение Re[4]: Помогите понять причину ошибки (unable to write data от 23.06.2015 13:43

Изменено 23.06.2015 13:50 breee breee

Здравствуйте, v_andal, Вы писали:

_>>>Сервер когда читает, как определяет границы сообщений?

BB>>Все сообщения начинаются с фиксированной длины, затем идет переменное тело. Сервер сначала читает длину, затем само тело.

_>То есть у сервера только один поток?

Для каждого клиента свой поток. Вернее, все сделано через async/await и таски, поэтому в конечном счете используется пул потоков.

_>А сервер учитывает, что он может прочесть только кусок сообщения за раз? Потенциально, он и при записи может отправить только часть из отправляемых данных.

Да, это учитывается.

_>В принципе, если сообщения не очень большие, можно весь обмен каким-нибудь wireshark перехватить и посмотреть, что происходит на уровне сети. Если на этом уровне соединение не пропадает, то значит баг в библиотеке или программе.

Спасибо за попробую.

_>Если же соединение рубится на уровне сети, то значит клиент его почему-то закрывает.

Клиент тоже мой. Вроде никаких ошибок на его стороне не происходит.
Re[4]: Помогите понять причину ошибки (unable to write data
Здравствуйте, v_andal, Вы писали:

_>>>Сервер когда читает, как определяет границы сообщений?

BB>>Все сообщения начинаются с фиксированной длины, затем идет переменное тело. Сервер сначала читает длину, затем само тело.

_>То есть у сервера только один поток?

Для каждого клиента свой поток. Вернее, все сделано через async/await и таски, поэтому в конечном счете используется пул потоков. Но ошибку я получаю при тестировании с одним клиентом, поэтому в принципе можно считать, что поток один.

_>А сервер учитывает, что он может прочесть только кусок сообщения за раз? Потенциально, он и при записи может отправить только часть из отправляемых данных.

Да, это учитывается.

_>В принципе, если сообщения не очень большие, можно весь обмен каким-нибудь wireshark перехватить и посмотреть, что происходит на уровне сети. Если на этом уровне соединение не пропадает, то значит баг в библиотеке или программе.

Спасибо за попробую.

_>Если же соединение рубится на уровне сети, то значит клиент его почему-то закрывает.

Клиент тоже мой. Вроде никаких ошибок на его стороне не происходит.