Если у вас есть сервер написан на одном языке (Java), а клиент на другом (C#), между ними не бегают типы byte, они друг другу посылают данные. Типы это всего лишь описательные структуры языка программирования и к данным они не имеют никакого отношения. Просто программисту понятнее вместо 10000001, получить значение byte myVar = 129.
byte в Java min value = -128, max value = 127.
byte в C# min value = 0, max value = 255
sbyte в C# min value = -128, max value = 127
Мое мнение вы просто запутались в трех соснах.
Еще очень важное отличие Java и .Net в
порядке байтов. У .Net по умолчанию это Little Endian, у Java это Big Endian. Конкретно вашего вопроса эта информация не касается, но в будущем может пригодится.