1
所以,文件說:的CAsyncSocket接收()的返回值
http://msdn.microsoft.com/zh-cn/library/ct7d990b(v=VS.80).aspx
「接收返回接收的字節數。如果連接已關閉,則返回0。」
鑑於事實上功能不阻止什麼,如果沒有數據?
如何確定它是否返回0因爲沒有數據或因爲它斷開?
所以,文件說:的CAsyncSocket接收()的返回值
http://msdn.microsoft.com/zh-cn/library/ct7d990b(v=VS.80).aspx
「接收返回接收的字節數。如果連接已關閉,則返回0。」
鑑於事實上功能不阻止什麼,如果沒有數據?
如何確定它是否返回0因爲沒有數據或因爲它斷開?
如果沒有數據,函數永遠不會返回0,而是返回SOCKET_ERROR
和GetLastError() == WSAEWOULDBLOCK
。
我的意思是,如果沒有數據,因爲沒有到達,除非你的意思是在這種情況下,套接字將返回SOCKET_ERROR,即使沒有錯誤 – Lishi
是的。如果你使用異步套接字,'GetLastError()== WSAEWOULDBLOCK'實際上不是一個錯誤。 – JosephH