3

如果程序中的活动空闲,我有一些软件会断开与主服务器的连接。据我了解,我需要拦截一些心跳数据包或其他东西,然后每隔几秒钟复制并发送一次。我需要把它做成一个完全独立的程序(我必须把它交给办公室里的其他人,像 WireShark 这样的东西不能解决我的问题)。

我们正在尝试通过程序运行大型进程,但是,除非我们一直在程序中运行,否则即使它正在运行某些东西,它也会断开连接。

我正在使用 .net,特别是 VB.net,(我大部分时间都可以转换 c#)。

可以的话谢谢!

4

1 回答 1

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 不起作用,则无论空包是什么。

顺便说一句,即使它可以编译,也不要在生产代码中使用它,这只是一个示例。

于 2011-04-15T17:05:39.987 回答