如何用Chilkat socket读取整个消息?

时间:2012-05-15 11:46:49

标签: sockets stream chilkat

我需要获取整个消息(响应),但socket.ReceiveBytes();只返回消息的一部分。我试图循环它但是在没有字节要接收时它在超时时失败。

List<byte> lb = new List<byte>();
byte[] receivedMsg = socket.ReceiveBytes();   
while (receivedMsg.Length > 0)
{         
     lb.AddRange(receivedMsg);
     receivedMsg = socket.ReceiveBytes();
}

那么,我如何检查是否有字节要读?我如何阅读整个信息?

1 个答案:

答案 0 :(得分:0)

由于它是Chilkat实现,您应该联系开发人员。但我发现这可能有所帮助:http://www.cknotes.com/?p=302

最终,您需要知道从套接字读取多少内容才能构成整个消息。例如,如果上层协议是一个端口映射器,那么您就知道您希望以RFC指定的格式(http://tools.ietf.org/html/rfc1833。)

如果您通过套接字连接滚动自己的协议,那么请使用Chilkat博客文章中关于将总消息的大小放在前4个字节中的方法。