我有一些软件会在程序中的活动空闲时断开与主服务器的连接。根据我的理解,我需要拦截一些心跳包或其他内容,然后每隔几秒复制并发送一次。我需要把它作为一个完全独立的程序(我必须把它交给办公室里的其他人,而WireShark这样的东西不能解决我的问题)。
我们正在尝试通过该程序运行大型进程,但是,除非我们一直在程序中继续运行,即使它正在运行,它也会断开连接。
我正在使用.net,特别是VB.net,(我可以在大部分时间内转换c#。)
谢谢,如果可以的话!
答案 0 :(得分:0)
您是否可以在建立连接后立即运行后台线程,并经常 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不起作用,则无论是否等效于空数据包。
顺便说一句,即使它编译,也不要在生产代码中使用它,这只是一个例子。