【发布时间】:2010-05-21 03:52:15
【问题描述】:
我有一个相当简单的游戏,现在可以在 2.1 之前的每个版本上完美运行,但是在新的 2.2 (Froyo) 版本中,我无法创建套接字。我正在使用 nio 的 mina 包,并得到这个异常:
W/System.err(263): java.net.SocketException: Bad address family W/System.err(263):在 org.apache.harmony.luni.platform.OSNetworkSystem.connectStreamWithTimeoutSocketImpl(本机方法) W/System.err(263):在 org.apache.harmony.luni.platform.OSNetworkSystem.connect(OSNetworkSystem.java:115) W/System.err(263):在 org.apache.harmony.nio.internal.SocketChannelImpl.connect(SocketChannelImpl.java:272) W/System.err(263):在 org.apache.harmony.nio.internal.PipeImpl$SinkChannelImpl.finishConnect(PipeImpl.java:164) W/System.err(263):在 org.apache.harmony.nio.internal.PipeImpl.(PipeImpl.java:48) W/System.err(263):在 org.apache.harmony.nio.internal.SelectorProviderImpl.openPipe(SelectorProviderImpl.java:51) W/System.err(263):在 org.apache.harmony.nio.internal.SelectorImpl.(SelectorImpl.java:141) W/System.err(263):在 org.apache.harmony.nio.internal.SelectorProviderImpl.openSelector(SelectorProviderImpl.java:58) W/System.err(263):在 java.nio.channels.Selector.open(Selector.java:48) W/System.err(263):在 org.apache.mina.transport.socket.nio.SocketConnector.startupWorker(SocketConnector.java:248) W/System.err(263):在 org.apache.mina.transport.socket.nio.SocketConnector.connect(SocketConnector.java:210) W/System.err(263):在 org.apache.mina.transport.socket.nio.SocketConnector.connect(SocketConnector.java:137) W/System.err(263):在 org.apache.mina.common.support.BaseIoConnector.connect(BaseIoConnector.java:40)
在日志的后面,通常紧随我得到这个:
W/System.err(263): java.lang.NullPointerException W/System.err(263):在 org.apache.harmony.nio.internal.SelectorImpl.wakeup(SelectorImpl.java:418) W/System.err(263):在 org.apache.mina.transport.socket.nio.SocketConnector.connect(SocketConnector.java:222) W/System.err(263):在 org.apache.mina.transport.socket.nio.SocketConnector.connect(SocketConnector.java:137) W/System.err(263):在 org.apache.mina.common.support.BaseIoConnector.connect(BaseIoConnector.java:40)
我已经完成了所有我能想到的谷歌搜索和环顾四周,但一无所获。我最接近的似乎是在 XP 和 Vista 机器上支持 ipv6 的旧 JDK 错误(我正在运行 Vista)。建议包括禁用 ipv6(不起作用)和禁用 ipv4 并离开 ipv6(对我不起作用,因为我的路由器和 ISP 不支持它,因此无法进行测试)。
有什么想法、建议和我没有尝试过的事情吗?
谢谢, 乔什
【问题讨论】:
-
您能发布您的 Socket 设置代码吗?
-
嗨 Roman,我正在使用游戏 API,但我应该能够获取代码。有趣的是,不是我正在使用的,但其他人似乎也遇到了同样的问题:smartfoxserver.com/forums/… 我会看看是否能找到设置代码并将其发布在这里。 -- 乔什
-
快速更新。在尝试在 mina 包中查找导致问题的代码的过程中,我只是决定完全使用不同的堆栈会更容易。在使用标准 java.net.Socket 将其更改为半定制解决方案时 - 现在一切正常。假设这对没有这个选项的人没有帮助,但它对我有用 - 所以继续前进。 -- 乔什