BinaryWriter
может работать, хотя строки пишутся с предшествующей 7-битной кодированной длиной, которую, я подозреваю, клиент не сможет обработать. Вам, вероятно, придется преобразовать строки в байты, а затем либо добавить слово длины, либо завершить его 0.
Нет необходимости вручную преобразовывать числа в байты. Если у вас есть long
, который вы хотите записать как byte
, просто приведите его. То есть, если ваш BinaryWriter
равен bw
, вы можете написать bw.Write((byte)longval);
. Для записи -1
как long: bw.Write((long)(-1))
.