SOCKET s;
WORD wVersionRequested;
WSADATA wsa;
wVersionRequested = MAKEWORD( 2, 2 );
int res = WSAStartup(wVersionRequested,&wsa);
if(res == -1)
{
return_char="1001";
return s;
}

struct sockaddr_in socket_in;
s =  WSASocket(AF_INET,SOCK_STREAM,0,NULL,0,0);
if(s == INVALID_SOCKET)
{
return_char="1002";
return s;
}

socket_in.sin_family = AF_INET;
socket_in.sin_port = htons(5555);
socket_in.sin_addr.S_un.S_addr = inet_addr(cs_serip);

int con_res = connect(s,(struct sockaddr*)&socket_in,sizeof(socket_in));
if(con_res == SOCKET_ERROR)
{
//失败
return_char="1003";
closesocket(s);
WSACleanup();
return s;
}
.............................这个DLL里面的socket初始化代码
当我for 几千次的时候,会出return_char="1002"错误,及s =  WSASocket(AF_INET,SOCK_STREAM,0,NULL,0,0);失败,求解决方法

解决方案 »

  1.   

    错误代码返回是:10048,是connect时返回的
      

  2.   

    WSASocket返回失败后错误码是什么?
      

  3.   

    失败了,我采用重复连接,依然失败
    line1:
    con_res = connect(s,(struct sockaddr*)&socket_in,sizeof(socket_in));
    if(con_res == SOCKET_ERROR)
    {
    CString ccc;
    DWORD ldrerrid=GetLastError();
    if (ldrerrid==10048)
    {
    Sleep(1000);
    iiercut++;
    if (iiercut>3)
    {
    }
    else
    {
    goto line1;
    }

    }
    ccc.Format("con[%d]:%d",iiercut,ldrerrid);
    return_char=ccc.GetBuffer(ccc.GetLength());//="1002";
    closesocket(s);
    WSACleanup();
    return s;
    }高人指点