如何获得空闲时间的套接字连接?

时间:2012-02-03 10:17:12

标签: java sockets

我在我的java应用程序中使用ServerSocket,它将侦听端口1111.当客户端连接到端口时,每个客户端连接将在单独的Thread中执行。每个连接将每隔1分钟接收一次数据,直到连接关闭。

问题是,假设客户端连接在10分钟内没有收到任何数据,应该触发一些事件,重要的是连接应该保持未闭合状态。这样我就可以使用该事件向我发送邮件提醒。

有没有技术可以做到这一点?

1 个答案:

答案 0 :(得分:0)

您可以实施ListenerObserver界面。这是算法。创建一个线程,例如,ClientMonitor,用于轮询客户端对象中的标志。您还可以使用TimerTask以指定的时间间隔轮询标记/对象​​

  1. 开始新的TimerTask以监控客户端
  2. 检查客户端是否在过去十分钟内收到任何数据。
  3. 如果是,请重置TimerTask
  4. 如果不是,则提出Exception,这将在与客户端的连接保持打开状态时负责执行邮件提醒。
  5. 重置TimerTask