BOOL CreateSocket(const char* pIP)
{
//ASSERT(g_sockRecv);
  BOOL bPassed = TRUE;
  g_sockRecv = socket(AF_INET, SOCK_STREAM, 0);
  sockaddr_in addr;
  addr.sin_family = AF_INET;
  addr.sin_addr.S_un.S_addr = inet_addr(pIP);
  addr.sin_port = htons(8050);

  int iRet = connect(g_sockRecv, (LPSOCKADDR)&addr, sizeof(addr));

  if(iRet == SOCKET_ERROR)
  {
MessageBox(NULL,"创建TCP Socket失败,停止测试","系统初化",MB_ICONERROR);化",MB_ICONERROR);
bPassed = FALSE;
closesocket(g_sockRecv);
}
return bPassed;
}为什么使用次程序第一次连接成功,然后使用closesocket(g_sockRecv);关闭后 再次连接服务端就连接不上了!!

解决方案 »

  1.   

    WSAGetLastError
    失败后,用此函数获得错误号
      

  2.   

    写没写AfxSocketInit?不写的话有时候成功有时候失败
      

  3.   

    网上有很多 socket 链接的例子,都是短小而且能正常工作的。
    你随便找一个来试验一下,然后就OK了。
      

  4.   

    closesocket(g_sockRecv);
    一般是不这么放的,一般放在整个连接过程结束,比如传送完数据的时候
      

  5.   

    用WSAGetLastError获取错误为0x000274c
      

  6.   

    同意ouyh12345(五岭散人) 
    WSAGetLastError
    失败后,用此函数获得错误号我老用这个函数了WSAGetLastError去看我的代码,很少,很简单