Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 有人对NIO/IPV6和断开网络连接有问题吗?_Java_Nio - Fatal编程技术网

Java 有人对NIO/IPV6和断开网络连接有问题吗?

Java 有人对NIO/IPV6和断开网络连接有问题吗?,java,nio,Java,Nio,我有一个在这些情况下工作的测试用例 ipv4,在线,nio(-Djava.net.preferIPv4Stack=true) ipv4,脱机(断开wifi),nio(-Djava.net.preferIPv4Stack=true) ipv6,在线,nio 然后,最终的ipv6离线(没有wifi连接)实际上从未连接,只是挂起直到超时。第一个调用so SocketChannel.connect返回false,这很好,因此它会使用SelectableChannel.register启动异步连接。不幸的

我有一个在这些情况下工作的测试用例

  • ipv4,在线,nio(-Djava.net.preferIPv4Stack=true)
  • ipv4,脱机(断开wifi),nio(-Djava.net.preferIPv4Stack=true)
  • ipv6,在线,nio
  • 然后,最终的ipv6离线(没有wifi连接)实际上从未连接,只是挂起直到超时。第一个调用so SocketChannel.connect返回false,这很好,因此它会使用SelectableChannel.register启动异步连接。不幸的是,它挂在jdk代码中的某个地方……嗯,我想我接下来可以进行堆栈转储并添加更多信息

    以前有人见过这个问题吗? JDK9.0.4

    (我想我还得拔掉插头,升级到jdk10,希望这会很容易——祝你好运)

    更新1:Ok Profiler没有帮助,因为它是nio,它是异步的,这意味着它位于选择器上等待(预期和预期触发就是全部),而另一个线程位于未来等待它解决,直到选择器触发并完成从未发生的连接(仅脱机)。我想我会升级jdk并测试它

    更新2:升级到jdk12,结果相同

    是否有其他人在本地主机上进行过测试,其中服务器绑定到端口0,客户端连接到最终绑定到客户端位于nio且使用ipv6的端口?当一个测试套件不能离线工作并且只能在线工作时,这是非常烦人的,所以我正在尝试解决这个问题

    谢谢,
    Dean

    当wiki关闭时,您的测试是否绑定/连接到IPv6链接本地地址?这是哪个操作系统。您是否尝试指定作用域id来标识环回接口?当wiki关闭时,您的测试是否绑定/连接到IPv6链接本地地址?这是哪个操作系统。您是否尝试指定作用域id来标识环回接口?