1

我正在创建一个需要侦听传入 UDP 包的服务器。

我的问题是我不知道如何处理IOExceptionon DatagramSocket.receive()。我能找到的每个教程要么打印其堆栈跟踪并继续,要么将其从方法中丢弃。没有人真正告诉我何时或为什么抛出异常。甚至 Javadoc 也只是声明:

IOException - if an I/O error occurs when creating the socket.

这让我很难回答在这种情况下我应该做什么。

  • 我可以安全地继续读取套接字吗?
  • 我应该关闭它并重试吗?
  • 我应该把它当作一个致命的例外并退出一切吗?
4

1 回答 1

2

SocketTimeoutException如果您设置了读取超时并且它过期,它会抛出。在这种情况下,您可以重试。如果有其他问题,它会抛出IOException:其中大多数对套接字是致命的,您必须关闭它。

于 2013-11-09T22:33:48.787 回答