1

我做了一个客户端,当服务器上的 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 秒才能给出错误。高度赞赏这方面的任何帮助。谢谢

4

0 回答 0