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
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
winc是什么?
创建win32 console application 用同样的代码,就可以实现多个客户端同时连接到服务器
创建win32 console application 用同样的代码,就可以实现多个客户端同时连接到服务器
1、只accept一次,这样,只能接收到第一个的。
2、接受的SOCKET,有没有定义SOCKET缓存区,应该定义SOCKET缓存区,连接上来的SOCKET放在缓存区中。
不太明白。
你的意思是这段程序作为控制台程序就可以正常工作,但是放到其他框架,比如MFC程序里就不行?
如果是这种情况,很可能你那个程序里有问题。