【发布时间】:2016-02-01 18:06:39
【问题描述】:
我正在开发一个客户端-服务器项目,该项目使用处理数据包丢失和超时的 UDP 套接字发送/接收。由于每次数据包丢失时接收方法都会被阻塞(如果发生超时),我需要找到一种方法来杀死接收套接字被阻塞的线程。问题是,它没有抛出任何异常,所以不知道如何杀死线程。我想终止线程,以便下次尝试再次重新启动。
【问题讨论】:
标签: java multithreading sockets timeout
我正在开发一个客户端-服务器项目,该项目使用处理数据包丢失和超时的 UDP 套接字发送/接收。由于每次数据包丢失时接收方法都会被阻塞(如果发生超时),我需要找到一种方法来杀死接收套接字被阻塞的线程。问题是,它没有抛出任何异常,所以不知道如何杀死线程。我想终止线程,以便下次尝试再次重新启动。
【问题讨论】:
标签: java multithreading sockets timeout
需要一种方法来杀死线程
不,你没有。
您需要一种方法来检测超时。
设置读取超时,使用setSoTimeout(),并在触发时捕获SocketTimeoutException。
【讨论】: