我的程序有一个服务器和一个客户端,它们与套接字通信。当我在 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);
}
}
}