数据包拦截器(.net)

数据包拦截器(.net),.net,vb.net,packet,heartbeat,.net,Vb.net,Packet,Heartbeat,我有一些软件,如果程序中的活动处于空闲状态,它会自动断开与主服务器的连接。据我所知,我需要截获一些心跳数据包或其他东西,然后每隔几秒钟复制并发送一次。我需要把它变成一个完全独立的程序(我必须把它交给办公室里的其他人,像WireShark这样的东西解决不了我的问题) 我们正试图通过程序运行大型进程,但是,除非我们一直在程序中运行,否则即使程序正在运行某些东西,它也会断开连接 我使用的是.net,特别是VB.net(我大部分时间都可以转换c) 如果可以的话,谢谢你 您能否在建立连接后立即运行后台线程

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

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

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


如果可以的话,谢谢你

您能否在建立连接后立即运行后台线程,并每隔一段时间ping一次服务器以防止断开连接?像这样的事情(C#):

或者,如果ping不起作用,则不管空数据包的等效值是什么


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

这是url ping,不是吗?我认为,心跳或程序使用的任何东西都在包中。我需要捕获一个来了解它是什么,然后再将它发送回去。对吗?
 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
      }
    }
 }