我有一个 UDP 方法,它使用 DispatchQueue 使用以下代码等待回复:
DispatchQueue.global(qos: .userInitiated).async {
let server:UDPServer=UDPServer(address:"0.0.0.0", port:5005)
let (data,_,_) = server.recv(1024)
DispatchQueue.main.async {
...
}
}
这非常有效,并启动了一个等待我的数据进入的过程。让我彻夜难眠的是,如果我们永远得不到回复,会发生什么?server.recv 永远不会返回,所以我看不到该过程将如何结束?有没有办法给它预定的运行时间?