为什么在通过VPN时套接字获得RST数据包

时间:2012-08-10 07:17:40

标签: sockets

我的程序有一个服务器和一个客户端,它们与socket通信。当我在Intranet环境中测试它们时没有问题。在互联网环境中测试它们没有问题。我使用NAT来设置全球化服务器。但是当客户端通过VPN(TinyVPN)与服务器连接时,四分钟后做任何事情,客户端和服务器几乎同时收到一个RST数据包。 为什么客户端通过VPN与服务器连接,因为我公司的服务器和客户端都无法访问互联网环境,所以我使用VPN在我公司上网。 我很困惑,当我使用wireshark捕获服务器和客户端的最后一个数据包时,它们几乎同时收到一个RST数据包。 我也是谷歌搜索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);
            }
    }    

     }

1 个答案:

答案 0 :(得分:0)

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