Я пишу клиент .Net/C# на сервер Java на Solaris.. Net клиент против Java-сервера с необработанными данными
Сервер Java выписывает необработанные байтовые данные в формате Gziped, который мне нужно извлечь, но у меня возникли проблемы с чтением данных в правильных размерах буфера. Я прочитал сообщение не-детерминистически неполное или полное и не может прочитать второе сообщение в любом случае. Я читаю байты, используя класс NetworkStream с свойством DataAvailable.
Я предполагаю, что это может быть связано с проблемой маленького/большого конца. Нужно ли использовать специальное преобразование для изменения данных с большого на маленький Endian? Нужно ли читать необходимые байты с помощью заголовка gzip?
Раньше я использовал один и тот же сервер с несжатым протоколом и не имел проблем с использованием StreamReader с функцией ReadLine раньше, но этот протокол был чисто текстовым.
Редактировать: К сожалению, у меня нет выбора, поскольку предоставляется удаленный сервер и протокол. Является ли конечная часть формата GZip или мне нужно только преобразовать заголовок соответственно? Несжатые данные представляют собой чистые строки с кодировкой UTF8 с разрывами строк в качестве разделителей.
Моя проблема в том, что сервер полностью вышел из-под контроля. Поэтому мне это так сложно. Я думаю, что у меня проблема на сетевом уровне, но я не понимаю, откуда она взялась. – weismat
Раньше я работал с несжатым сервером - поэтому я знаю, что сетевые основы отправки правильны - проблема только в принимающей стороне. Uncompressed Я использовал только StreamReader с ReadLine, и это работало нормально ... мой конец связи по-прежнему несжатый, но вначале мне нужна аутентификация на основе запроса, которая уже терпит неудачу. – weismat