首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

socket创办失败,WSAGetLastError返回0

2012-09-28 
socket创建失败,WSAGetLastError返回0socket创建失败,WSAGetLastError返回0,偶尔会出现这样正常吗?C/C++ c

socket创建失败,WSAGetLastError返回0
socket创建失败,WSAGetLastError返回0,偶尔会出现这样正常吗?

C/C++ code
DWORD _stdcall thread(LPVOID lp){    SOCKET _socket;    _socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);    if (SOCKET_ERROR == _socket)    {        char tmp[55];        sprintf(tmp, "socket创建失败,原因:%d", WSAGetLastError());        OutputDebugString(tmp);        Sleep(2000);        return SOCKET_ERROR;    }    sockaddr_in clientAddr;    memset(&clientAddr, 0, sizeof(clientAddr));    clientAddr.sin_family = AF_INET;    clientAddr.sin_addr.s_addr = inet_addr("111.178.146.10");    clientAddr.sin_port = ::htons(u_short(2001));            int iMode = 1;    ioctlsocket(_socket,FIONBIO, (u_long FAR*) &iMode);    FD_SET  WriteSet;    timeval timeout;    timeout.tv_sec = 2;  // 检测时间2秒    timeout.tv_usec = 0;    char error;    int len = sizeof(char);    BOOL bReuseaddr=TRUE;    setsockopt(_socket,SOL_SOCKET ,SO_REUSEADDR,(const char*)&bReuseaddr,sizeof(BOOL));    if ( 0 != connect(_socket, (SOCKADDR*)&clientAddr, sizeof(clientAddr)) )    {        FD_ZERO(&WriteSet);        FD_SET(_socket, &WriteSet);        if ( select(0, NULL, &WriteSet, NULL, &timeout) > 0 )        {            getsockopt(_socket, SOL_SOCKET, SO_ERROR, &error, &len);            if (error != 0)            {                char tmp[55];                sprintf(tmp, "socket创建失败,原因:%d", WSAGetLastError());                OutputDebugString(tmp);                closesocket(_socket);                return SOCKET_ERROR;            }        }        else         {            char tmp[55];            sprintf(tmp, "socket创建失败,原因:%d", WSAGetLastError());            OutputDebugString(tmp);            closesocket(_socket);            return SOCKET_ERROR;        }    }    OutputDebugString("连接成功");    Sleep(100000000);    return 0;}void CConnectDlg::OnOK() {    WSADATA m_wsaD;    if ( 0 != WSAStartup(0x202,&m_wsaD) )     {        ::MessageBox(0, "初始化WSA失败!", 0, 0);    }    for (int i = 0; i < 1000; i++)    {        CreateThread(0, 0, thread, 0, 0, 0);        Sleep(100);    }}




打印信息:
[2216] 连接成功
[2216] 连接成功
[2216] 连接成功
[2216] 连接成功
[2216] 连接成功
[2216] 连接成功
[2216] 连接成功
[2216] 连接成功
[2216] 连接成功
[2216] 连接成功
[2216] 连接成功
[2216] 连接成功
[2216] 连接成功
[2216] 连接成功
[2216] 连接成功
[2216] 连接成功
[2216] 连接成功
[2216] 连接成功
[2216] 连接成功
[2216] socket创建失败,原因:0  
[2216] 连接成功
[2216] 连接成功
[2216] 连接成功
[2216] 连接成功
[2216] 连接成功
[2216] 连接成功
[2216] 连接成功
[2216] 连接成功
[2216] 连接成功
[2216] 连接成功
[2216] 连接成功
[2216] 连接成功
[2216] 连接成功
[2216] 连接成功
[2216] 连接成功
[2216] 连接成功


偶尔出现一个socket返回失败正常吗? 是不是创建的太快原因?

[解决办法]
这个是哪句输出来的?[2216] socket创建失败,原因:0

热点排行