我正在使用 Netty 编写一个将 UDP 消息发送到服务器的客户端应用程序。简而言之,我正在使用这段代码将流写入通道:
ChannelFuture future = channel.write(request, remoteInetSocketAddress);
future.awaitUninterruptibly(timeout);
if(!future.isDone()){
//abort logic
}
一切正常,但有一件事:我无法测试中止逻辑,因为我无法使写入失败 - 即即使服务器关闭,未来也将成功完成。写操作通常需要大约 1 毫秒,因此设置非常小的超时并没有太大帮助。
我知道首选的方法是使用异步模型而不是 await() 调用,但是对于我的场景,我需要它是同步的,并且我需要确保它在某个时候完成。
有谁知道我怎么能模拟一个未完成的未来?
提前谢谢了!毫米