CAsyncSocket receive () возвращаемое значение - PullRequest
1 голос
/ 15 ноября 2011

Итак, в документации сказано:

http://msdn.microsoft.com/zh-cn/library/ct7d990b(v=VS.80).aspx

"Receive возвращает количество полученных байтов. Если соединение было закрыто, возвращается 0."

Учитывая тот факт, что функция не блокирует, что, если просто нет данных?

Как можно определить, вернул ли он 0, потому что нет данных или потому что он отключен?

1 Ответ

0 голосов
/ 15 ноября 2011

Функция никогда не вернет 0, если данных нет. Вместо этого она вернет SOCKET_ERROR с GetLastError() == WSAEWOULDBLOCK.

...