Прием/передача строки (далее string) заключается в передачи длины строки в байтах (long) и самой строки (строка utf16)
Да, в том протоколе походу жестко забито, что в первых 4-х байтах (long : 4 bytes) будет заголовок передачи, в котором говорится, сколько байт с информацией ждать после заголовка.
Т.е.
1) получаете нужную строку к передаче.
2) определяете ее длинну (например, 20 байт).
3) проверяете длинна проходит? (не будет ли переполнения?).
4) формируете новую строку=4 байта+20 байт
5) вдуваете в трубу 24 байта.
На стороне сервера пройдет обратное преобразование.