我正在尝试使用套接字编写一个简单的 SNPP(简单网络寻呼协议)客户端。一切似乎都运行良好,除了服务器之间的小不一致。
当我发送命令时,我需要读取回复,通常是单个数据块。但是,Sprint 的 SNPP 服务器分两部分发送回复。第一个数据块是状态码的第一位。第二块是剩余部分。例如,当我尝试接收“220 网关就绪”回复时,它是这样到达的:
2
我必须发送另一个空命令来检索其余部分:
20 Gateway ready
目前,我正在使用:
byte[] buffer = new byte[256];
socket.Receive(buffer);
如何确保在发出命令后收到所有可用数据,而不为每个数据块分配单独的缓冲区?