gpt4 book ai didi

java - 在 java.nio 中指定连接超时

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:36:45 27 4
gpt4 key购买 nike

使用非阻塞 I/O,连接到远程地址的代码如下所示:

SocketChannel channel = SelectorProvider.provider().openSocketChannel();
channel.configureBlocking(false);
channel.connect(address);

然后,当某些选择器说出相应的键 isConnectable() 时,必须通过在 channel 上调用 finishConnect() 来完成连接过程。

有没有办法在使用这个成语时指定连接超时?

最佳答案

有趣的问题。我不确定 nio 本身是否提供了解决方案。

根据我的经验,我运行了一个 Callable 来尝试连接,然后使用 Future 轮询响应,使用“interval”和“timeout”变量进行循环,并使用 Thread.sleep() 进行响应。

希望这能为您指明一个有用的方向......

此外,我建议您看一下 Apache Mina(您可以将 Mina 描述为一个 nio 框架)。它为您处理了很多此类事情,例如在 StreamIoHandler http://mina.apache.org/report/trunk/apidocs/org/apache/mina/handler/stream/StreamIoHandler.html

关于java - 在 java.nio 中指定连接超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2563934/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com