0

我的程序有一个服务器和一个客户端,它们与套接字通信。当我在 Intranet 环境中测试它们时没问题。并且在 Internet 环境中测试它们没有问题。我使用 NAT 来设置全球化服务器。但是当客户端通过VPN(TinyVPN)与服务器连接时,四分钟后客户端和服务器几乎同时收到一个RST数据包。为什么客户端通过VPN连接服务器,因为我公司的服务器和客户端都不能作为互联网环境访问,所以我使用VPN在我公司进行互联网访问。我很困惑,当我使用wireshark在服务器和客户端捕获最后一个数据包时,它们几乎同时收到一个RST数据包。我也是google search RST,对这个问题有很多意见。我不关闭操作,做任何通讯操作。只能连接并等待,4分钟后收到一个RST数据包,我不知道原因。请帮助你。我复制了部分源代码如下。

    private void OnReadComplete( IAsyncResult ar ) 
{
        ClientUser currentUser;
        int CbRead = -1;

        try
        {
             lock (this.syncSocket)
            {
                //set current opration usser
                currentUser = (ClientUser)ar.AsyncState;
                //Notice::::::::::::::There have a error
                CbRead = currentUser.Stream.EndRead(ar);
            }
        }
        catch(IOException IOExcep)
        {   
            if (m_ClientUser.IsConnected)
            {
                DisconnectClient();
                LogOutput.Logger.Error("IOExcep, Error: " + IOExcep.Message);
            }
    }    

     }
4

1 回答 1

0

最可能的原因是您的 VPN 超时,没有流量通过它并断开连接,从而关闭了所有通过它建立的 TCP 连接。

于 2012-08-10T12:51:22.853 回答