ソケットを使用して単純な SNPP (Simple Network Paging Protocol) クライアントを作成しようとしています。サーバー間のわずかな不一致を除いて、すべてがうまく機能しているようです。
コマンドを送信すると、通常は単一のデータ チャンクである応答を読み取る必要があります。ただし、Sprint の SNPP サーバーは 2 つの部分で応答を送信します。データの最初のチャンクは、ステータス コードの最初の桁です。2 番目のチャンクは残りです。たとえば、「220 Gateway ready」という返信を受信しようとすると、次のように届きます。
2
残りを取得するには、別の空のコマンドを送信する必要があります。
20 Gateway ready
今のところ、私は使用しています:
byte[] buffer = new byte[256];
socket.Receive(buffer);
コマンドを発行した後、データのチャンクごとに個別のバッファを割り当てずに、利用可能なすべてのデータを確実に受信するにはどうすればよいですか?