处理Windows套接字错误

时间:2013-08-12 18:39:54

标签: c++ sockets

我正在使用以下代码从套接字中检索数据

iResult =  recv(Socket,data_array,sizeof(data_array),0);

现在文档说明如果recv成功,它将返回no。检索到的字节数,否则将返回错误代码。如何检查该错误代码。我的意思是如果检索到的数据量与错误代码的值相同。

3 个答案:

答案 0 :(得分:3)

如果返回值为负(即SOCKET_ERROR或-1),那就是错误。

答案 1 :(得分:2)

检查this link以获取更多详细信息。

基本上,当发生错误时,会返回SOCKET_ERROR( - 1),然后您必须调用WSAGetLastError(),或者读取errno或其他特定于平台的等效项,以获取具体的错误代码。

答案 2 :(得分:0)

  

现在文档说明如果recv成功,它将返回no。检索到的字节数,否则会返回错误代码。

不,它根本没有说。再读一遍。它表示如果成功则返回传输的字节数,否则-1errno,或Windows中WSAGetLastError().

中可用的错误
  

如何检查该错误代码。我的意思是如果检索到的数据量与错误代码的值相同。

您无法传输-1个字节。没有歧义。