Асинхронная ошибка SslStream

Я создал асинхронный прослушиватель SslStream, но он не получил сообщение от клиента должным образом

Код слушателя

Code Removed

joran i don't want the code to be here anymore

Вот сообщение, которое я пытаюсь отправить на сервер «Привет от клиента»

и вот как это показывает консоль моего сервера

Hello
 From
 Clie
t 

Может кто-нибудь сказать мне, почему я не получил сообщение правильно?, это действительно очень странно, и я не могу решить, пожалуйста, мне нужна помощь

И\Или я могу использовать StreamReader для получения сообщения? он неблокирующий, поэтому код останется асинхронным?


person Daniel Eugen    schedule 13.09.2012    source источник


Ответы (1)


Вы не опубликовали код, в котором вы конвертируете сгенерированный массив байтов в строку, что могло бы помочь. Видя, что вы объявляете свой буфер чтения длиной 5 байтов, я подозреваю, что это как-то связано с 5 символами на вывод строки.

person pixelbadger    schedule 13.09.2012
comment
это только первый буфер, который я установил на 5, но после того, как я установил размер = sslstream.EndRead, поэтому он должен прочитать правильную длину сообщения сообщения, которое приходит после первого приема - person Daniel Eugen; 14.09.2012
comment
Также мой код для преобразования байтов просто Encoding.ASCII.GetString(e.Buffer); - person Daniel Eugen; 14.09.2012
comment
Когда я печатаю размеры, возвращенные из EndRead, я обнаружил, что все они равны 5,5,5,5,5,5. - person Daniel Eugen; 14.09.2012
comment
После многократного анализа я думаю, что он определяет длину до 5, потому что длина первого сообщения, которое получает сокет, равна 5 idk, это очень странно, поэтому, пожалуйста, помогите, я очень запутался. - person Daniel Eugen; 14.09.2012
comment
Да, но SslStream.EndRead возвращает количество прочитанных байтов, которое в первом случае равно 5. Поскольку вы используете это значение в своих последующих вызовах Create buffer, размер всегда будет равен 5. Что-то вставляет возврат каретки между каждым из этих 5 символов. - person pixelbadger; 14.09.2012
comment
так что я должен сделать, чтобы решить, что эта проблема сводит меня с ума - person Daniel Eugen; 14.09.2012
comment
я попытался изменить буфер в EndAuthenticate с 5 на любое другое значение, что происходит, первое сообщение получено правильно, тогда все остальные тоже установлены на 5 - person Daniel Eugen; 14.09.2012
comment
Любая помощь ? я все еще застрял в этой точке! - person Daniel Eugen; 14.09.2012