C++ MFC服务器/客户端在不同计算机上超时

C++ MFC服务器/客户端在不同计算机上超时,c++,mfc,client-server,winsock,casyncsocket,C++,Mfc,Client Server,Winsock,Casyncsocket,我有一个使用Winsock用MFC编写的客户机和服务器。它们只有在同一台计算机上(即“127.0.0.1”)才能工作,但一旦我尝试从另一台计算机连接客户端,我会收到错误代码10060,这是一个超时错误。我不确定这是否相关,但是,一台计算机连接到一个域(它是一台学校计算机),另一台在一个工作组之下,因此不确定这些是否会导致问题。下面是一些代码,服务器对象链接到从CSocket派生的类I 客户 if(client.Create() != true) AfxMessageBox(L"FAILE

我有一个使用Winsock用MFC编写的客户机和服务器。它们只有在同一台计算机上(即“127.0.0.1”)才能工作,但一旦我尝试从另一台计算机连接客户端,我会收到错误代码10060,这是一个超时错误。我不确定这是否相关,但是,一台计算机连接到一个域(它是一台学校计算机),另一台在一个工作组之下,因此不确定这些是否会导致问题。下面是一些代码,服务器对象链接到从CSocket派生的类I

客户

if(client.Create() != true)
    AfxMessageBox(L"FAILED");

UINT port = 200;    
client.Connect(L"IP ADDRESS",port); //fails here
int msg = client.GetLastError();
CString c_msg;
c_msg.Format(L"%d",msg);
AfxMessageBox(c_msg); //displays error code
服务器

int i_port = 80;
server.Bind(server.Create(0,SOCK_STREAM,NULL)); // saw somewhere that i should bind the socket

if(server.Listen() == false)// if listen() fails
{
    AfxMessageBox(L"Could not Listen on specified Port \n Please select a different one.");
    server.Close();// close server
}
c_List.AddString(L"Server Listening");// notfiy user server is listening in ListBox
服务器接受功能

CString userIp; //string
CString u_Status("Connection made from IP Address:"); //string
UINT userPort = 0; //integer

if(server.Accept(client))// if server sucessfully accepts client then
{
    client.GetSockName(userIp,userPort); // get client IP and Port number and assign to variables
    u_Status = u_Status + userIp; // string additon


    ListStatus = u_Status; // assigning local value to global string
    conIp = true; // change boolean to true

}

您是否尝试从客户端ping服务器?您可以使用ping xxx.xxx.xxx.xxx命令在Windows命令提示符下执行此操作。如果它不响应ping,那么网络路由器将不允许您连接。听起来像是防火墙问题。你试过关闭防火墙只是为了测试吗?@ScottMcP MVP我试过ping服务器,但也失败了,超时了,我不能ping同一网络上的任何计算机。至于防火墙的转动。其中一台电脑已注册到域网络,因此他们已禁用关闭防火墙的功能。