Java 如何识别一个;“插座关闭”;例外

Java 如何识别一个;“插座关闭”;例外,java,android,Java,Android,我有一个服务器套接字正在等待接受连接。在另一个线程上接收到某个事件后,我关闭套接字,使其不再等待连接。我收到一条带有“socketclosed”消息的java.net.SocketException。问题是,如何识别“套接字关闭”异常。我可以使用异常消息来实现这一点,但我觉得这不是我应该如何处理异常 我查阅了文件: SocketException类有许多子类,但我找不到任何引用“套接字关闭”的东西。可以使用异常消息来标识它吗?这条信息会改变吗,可能是在另一个平台上还是别的什么 下面是一些代码:

我有一个服务器套接字正在等待接受连接。在另一个线程上接收到某个事件后,我关闭套接字,使其不再等待连接。我收到一条带有“socketclosed”消息的java.net.SocketException。问题是,如何识别“套接字关闭”异常。我可以使用异常消息来实现这一点,但我觉得这不是我应该如何处理异常

我查阅了文件:

SocketException类有许多子类,但我找不到任何引用“套接字关闭”的东西。可以使用异常消息来标识它吗?这条信息会改变吗,可能是在另一个平台上还是别的什么

下面是一些代码:

try {
    // Wait for connection,
    connectionSocket = serverSocket.accept();

} catch (SocketException e) {

    // How to identify the "Socket closed" exception?
    // ...

} catch (IOException e) {
    e.printStackTrace();
}

更好的方法是:

  • 定义“停止”标志
  • 当您希望服务器停止接受时设置它
  • 在服务器套接字上设置较短的套接字超时,例如几秒钟
  • 当您获得连接或发生超时时,请检查标志,并相应地继续