2012-05-15 22 views
0

我需要得到整個消息(響應),但socket.ReceiveBytes();只返回消息的一部分。我試圖循環它,但它沒有超時時沒有字節接收。如何用Chilkat套接字讀取整個消息?

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

那麼,我該如何檢查是否有字節讀取?我如何閱讀整個消息?

回答

0

自從它實施Chilkat以來,您應該聯繫開發人員。但我發現這可能有所幫助:http://www.cknotes.com/?p=302

最終,您需要知道從套接字讀取多少信息才能構成整個消息。例如,如果覆蓋協議是端口映射器,那麼您知道您期望RFC指定格式的郵件(http://tools.ietf.org/html/rfc1833。)

如果您正在滾動你自己的協議通過套接字連接,然後使用Chilkat博客文章中關於將總郵件的大小放在前4個字節中的方法。