java - 我能否唤醒因调用 DatagramSocket.receive() 而阻塞的线程?

标签 java network-programming

我有一个阻塞在 UDP 数据包上的线程,我需要能够告诉它忘记那个数据包并做其他事情,所有这些都在接收超时发生之前。有什么办法吗?

最佳答案

使用 DatagramChannel 读取您的 UDP 数据包,并中断读取线程。根据 Thread.interrupt(和 DatagramChannel)的文档,读取操作将抛出 ClosedByInterruptException。

关于java - 我能否唤醒因调用 DatagramSocket.receive() 而阻塞的线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5134631/

相关文章:

java - 为 DataInputStream 手动设置超时

c - NETBSD 3.1 错误 - 在 malloc() : warning: recursive call

java - spring 初始化后预热 Neo4j 数据库

java - Java 中的错误处理权衡

java - 简单的 Android 计时器游戏

c - 从在 Linux 中的 socket 编程中监听和接受的连接中提取 IP c

java - 连接网络中的两个客户端

java - UDP 网络中的绑定(bind)错误

java - 错误: cannot find symbol [compiler error]

java - 仅对来自远程端点的响应起作用的 Servlet 过滤器 "proxy"