我做了一个客户端,当服务器上的 Windows 防火墙关闭时,它会立即连接到服务器,但是当防火墙打开时,连接服务器大约需要 30-35 秒。我已经尝试在服务器上为我的应用程序和端口添加防火墙例外,但没有任何效果,它仍然需要相同的时间。
这是我试图与服务器连接的客户端代码:
bool connectSocket()
{
_connectSocket = socket(PF_INET, SOCK_STREAM,0);
if(_connectSocket == INVALID_SOCKET)
{
LOG_ERROR("Failed intiating socket with partner.");
return false;
}
struct sockaddr_in thataddr;
memset(&thataddr,0,sizeof(thataddr));
thataddr.sin_addr.s_addr = inet_addr(_partnerIP.c_str());
thataddr.sin_family = AF_INET;
thataddr.sin_port = htons(_partnerPort);
int i = ::connect(_connectSocket,(struct sockaddr *)&thataddr,sizeof(thataddr));
if(i<0)
{
//i = WSAGetLastError();
LOG_WARNING("Failed connecting to partner. Check partner status.");
return false;
}
}
当服务器上的防火墙打开时::connect 函数将需要 30-35 秒才能给出错误。高度赞赏这方面的任何帮助。谢谢