WSADATA wsa;
if(WSAStartup(0x101,&wsa)) 
    AfxMessageBox("服务启动失败,错误码:%d",WSAGetLastError());
else
    SOCKET sock;
    sock=socket(AF_INET,SOCK_STREAM,0);
    AfxMessageBox("套接字创建失败,错误码:%d",WSAGetLastError());
    ........
第二个WSAGetLastError()返回0。0表示什么错误,该怎么处理?

解决方案 »

  1.   

    判断函数调用的返回值,失败后再WSAGetLastError。
      

  2.   

    第一:WSAStartup调用失败(第一个if)后不能使用WSAGetLastError;
    第二:先判断socket返回值是否有效
    第三:else部分怎么没有大括号
    修改如下:
        WSADATA wsa; 
        if (WSAStartup(0x0101,&wsa)) 
        {
            AfxMessageBox("服务启动失败,没有错误码"); 
            return;
        }
        SOCKET sock = socket(AF_INET, SOCK_STREAM, 0);
        if (INVALID_SOCKET == sock)
            AfxMessageBox("套接字创建失败,错误码:%d",WSAGetLastError());