ServerSocket:处理与客户端的断开连接

时间:2019-04-02 09:34:20

标签: java sockets callback event-handling serversocket

要求: 我正在编写一个Java应用程序,我需要我的应用程序充当服务器,在特定端口“ xxxx”上侦听 TCP 上的传入连接。连接到客户端后,将有一个从客户端发送的字节流,我的应用程序将处理这些字节流并将信息适当地保存在数据库中。到目前为止,我已经能够实现此功能。

要处理的方案:我需要处理一个特定的方案(可能很少见,但仍然如此)。客户端-服务器连接有时会因网络状况而中断。在这种情况下,我需要我的应用程序等待连接重新建立并继续从客户端读取字节流。

我对使用Java进行套接字编程相对较新,并且正在寻找可行的解决方案。我想到了两种可能的解决方案(在技术上可能可行或不可行):

  1. 配置回调 -我可以配置回调,以便在(重新)建立连接后立即启动readFromClient()方法。我不知道该怎么办。
  2. 添加事件监听器 -如果将与客户端的连接视为事件,我可以注册一个事件监听器,并在连接后立即触发readFromClient()方法(重新)建立。我对如何执行此操作有基本的想法,也正在尝试实施它。但是,如果有人可以提出一种干净的方法,我们将不胜感激。

我不知道我是否在朝着正确的方向思考。但是我认为这些可能是可行的解决方案。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

  

... 重建继续阅读信息流...

要点是(据我所知):没有重新建立。如果连接断开(发生IOException),则无需重新建立连接。

通过使用TCP,您无需(或更少)不必担心网络状况。

如果您想知道连接是否处于活动状态,则必须使用心跳。

如果您想重新连接到客户端,则他必须为您提供可能性。

也许我没有明白你在说什么,但是你可以发布一些代码并显示错误情况(也许是一些错误)。