и посылают друг друга запросы.
Вторая сторона получает:
byte[] rec = new byte[35];
int nByte = conn.handler.Receive(rec);
string msg = Encoding.UTF8.GetString(rec);
Запрос приходит но минус в том, что я объявил с 35 символами, если же у меня запрос придет с 15 символами, то остальное заполняется пробелами.
Я пытался сделать Trim, Replace.
Ничего не помогает, кто нибудь сталкивался с этим?
А nByte на что?
На будущее, там у GetString можно указать кол-во байтов которые надо обработать от начала массива
Ещё один момент - одного вызова Receive может быть недостаточно. Сокет кусками принимает, может даже 1 байт придти. Надо вызывать Receive в цикле, пока не получишь всё, что ожидаешь
1.удобнее использовать stream, тогда не придется заморачиваться с циклами и буферами. 2.так как размер не передается - при отправке получении в 1х байтах лучше отправлять размер сообщения
Используй https://github.com/chronoxor/NetCoreServer
Обсуждают сегодня