Я пытаюсь написать простой клиент SNPP (Simple Network Paging Protocol), используя сокеты. Кажется, все работает хорошо, за исключением небольшого несоответствия между серверами.
Когда я отправляю команду, мне нужно прочитать ответ, который обычно представляет собой один фрагмент данных. Однако сервер Sprint SNPP отправляет ответы в двух частях. Первый фрагмент данных является первой цифрой кода состояния. Второй кусок - это остаток. Например, когда я пытаюсь получить ответ «220 Gateway ready», он приходит так:
2
Я должен отправить еще одну пустую команду, чтобы получить остальные:
20 Gateway ready
На данный момент я использую:
byte[] buffer = new byte[256];
socket.Receive(buffer);
Как я могу убедиться, что я получаю все доступные данные после выполнения команды без выделения отдельного буфера для каждого куска данных?