如果程序中的活动空闲,我有一些软件会断开与主服务器的连接。据我了解,我需要拦截一些心跳数据包或其他东西,然后每隔几秒钟复制并发送一次。我需要把它做成一个完全独立的程序(我必须把它交给办公室里的其他人,像 WireShark 这样的东西不能解决我的问题)。
我们正在尝试通过程序运行大型进程,但是,除非我们一直在程序中运行,否则即使它正在运行某些东西,它也会断开连接。
我正在使用 .net,特别是 VB.net,(我大部分时间都可以转换 c#)。
可以的话谢谢!
您能否在建立连接后立即运行后台线程并每隔一段时间 ping 您的服务器以防止断开连接?像这样的东西(C#):
class KeepAlive
{
public void KeepAliveAsync()
{
Thread thread = new Thread(DoPing);
thread.Start();
}
private void DoPing()
{
Ping ping= new Ping ();
PingReply reply = ping.Send ("www.example.com");
if(reply.Status != IPStatus.Success)
{
// lost connection
}
}
}
或者,如果 ping 不起作用,则无论空包是什么。
顺便说一句,即使它可以编译,也不要在生产代码中使用它,这只是一个示例。