我正在使用以下代码从套接字中检索数据
iResult = recv(Socket,data_array,sizeof(data_array),0);
现在文档指出,如果 recv 成功,它将返回否。检索到的字节数,否则它将返回错误代码。如何检查该错误代码。我的意思是,如果检索到的数据与错误代码的值相同,该怎么办。
如果返回值为负数(即 SOCKET_ERROR 或 -1),那就是错误。
检查此链接以获取更多详细信息。
基本上,当发生错误时,SOCKET_ERROR
会返回 (-1),然后您必须调用WSAGetLastError()
或 readerrno
或其他特定于平台的等效项来获取特定的错误代码。
现在文档指出,如果 recv 成功,它将返回否。检索到的字节数,否则它将返回错误代码。
不,它根本没有这么说。再读一遍。它表示如果成功则返回传输的字节数,否则-1
,errno,
在 Windows 中或通过WSAGetLastError().
如何检查该错误代码。我的意思是,如果检索到的数据与错误代码的值相同,该怎么办。
您不能传输 -1 字节。没有歧义。