WORD wVersionRequested;
WSADATA wsaData;
   SOCKET sockClient;
   SOCKADDR_IN addrSrv;
int iErr = 0; wVersionRequested = MAKEWORD( 1, 1 );
 
iErr = WSAStartup( wVersionRequested, &wsaData );
if ( iErr != 0 )
{
return 0;
}
 
if ( LOBYTE( wsaData.wVersion ) != 1 || HIBYTE( wsaData.wVersion ) != 1 )
{
WSACleanup( );
return 0;
}
sockClient=socket(AF_INET,SOCK_STREAM,0);
 if(sockClient<0)
AfxMessageBox("创建潜逃字错误"); addrSrv.sin_addr.S_un.S_addr=inet_addr("192.168.2.126");//addrSrv.sin_addr.S_un.S_addr=inet_addr(IP);
addrSrv.sin_family=AF_INET;
addrSrv.sin_port=htons(7001);//SERVPORT iErr = connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR)); int test=WSAGetLastError(); if(SOCKET_ERROR == iErr)
{ closesocket(sockClient);
WSACleanup();
AfxMessageBox("连接失败");
return 0;
}用MFC做 服务器只能让一个客户端连接,第2个客户端就连接失败
用winc 同样代码,可以多个客户端连接,  请教个位大哥,什么问题导致其中失败时的test=10061

解决方案 »

  1.   

    10061意思是由于目标机器积极拒绝,无法连接。 这要看服务器端代码,是不是服务器只允许1个客户连接。
    winc是什么?
      

  2.   

    没有服务器端代码,服务器是个单独硬件装备,具体内部代码是什么不清楚,
    创建win32 console application 用同样的代码,就可以实现多个客户端同时连接到服务器
      

  3.   

    没有服务器端代码,服务器是个单独硬件装备,具体内部代码是什么不清楚,
    创建win32 console application 用同样的代码,就可以实现多个客户端同时连接到服务器
      

  4.   

    有两种情况,
    1、只accept一次,这样,只能接收到第一个的。
    2、接受的SOCKET,有没有定义SOCKET缓存区,应该定义SOCKET缓存区,连接上来的SOCKET放在缓存区中。
      

  5.   

    服务端有无建立多个accept,或者来一个新连接,创建一个新accept
      

  6.   


    不太明白。
    你的意思是这段程序作为控制台程序就可以正常工作,但是放到其他框架,比如MFC程序里就不行?
    如果是这种情况,很可能你那个程序里有问题。
      

  7.   

    应该看服务器listen,记得如果listen了,没有accept,客户端应该是等待。