Java me J2ME UDP客户端无法在emulator下发送数据包

Java me J2ME UDP客户端无法在emulator下发送数据包,java-me,udpclient,Java Me,Udpclient,我正在J2ME下开发UDP客户端。很长一段时间,每一个想法都很好; -UDP客户端与UDP服务器通信(服务器具有公共IP地址); -UDP客户端在J2ME仿真器和具有Internet连接的真实电话上都能完美工作 然后,仿真器下的UDP客户端突然无法向任何公共IP地址发送数据包(但发送到127.0.0.1是可以的)。请注意,在真实的移动电话下,UDP客户端仍然能够与UDP服务器通信 同时: -emulator下的UDP客户端可以使用localhost(127.0.0.1)地址与UDP服务器通信。

我正在J2ME下开发UDP客户端。很长一段时间,每一个想法都很好; -UDP客户端与UDP服务器通信(服务器具有公共IP地址); -UDP客户端在J2ME仿真器和具有Internet连接的真实电话上都能完美工作

然后,仿真器下的UDP客户端突然无法向任何公共IP地址发送数据包(但发送到127.0.0.1是可以的)。请注意,在真实的移动电话下,UDP客户端仍然能够与UDP服务器通信

同时: -emulator下的UDP客户端可以使用localhost(127.0.0.1)地址与UDP服务器通信。 -我在emlator下运行了UDP客户机演示,但是没有一个能够将数据包发送到公共IP地址(但是,当使用localhost地址作为目标地址时,每个想法都很好)。 -emulator下的UDP服务器能够向任何公共地址发送数据包

总结:每一个想法都很好。但是要知道,UDP客户端无法在仿真器下发送数据包。问题与代码无关,因为我使用了演示


这些都是症状。我希望你能帮助我。感谢您的帮助。

您说“emulator下的UDP服务器能够向任何公共地址发送数据包”。这是正确的吗?运行在同一模拟器上的UDP服务器应用程序能够发送UDP数据包?没错,运行在同一模拟器上的UDP服务器应用程序能够将UDP数据包发送到任何公共IP地址。但是不同的模拟器实例,对吗?您需要运行两个服务器才能拥有一个功能正常的客户机/服务器系统。您是否尝试过关闭仿真器并重新启动计算机以清除和重置仿真器?J2ME仿真器有一段脆弱的历史。您还可以尝试切换哪个是客户端,哪个是服务器。您还需要检查模拟器绑定到哪些端口,并确保防火墙和防病毒软件都是打开的(有时有规则阻止IIRC J2ME模拟器使用的非标准端口上的传出通信)。谢谢。我使用一个模拟器实例完成了所有测试。我不需要运行两个,因为我正在发送异步发送的UDP数据包。此外,UDP客户端可以向127.0.0.1发送数据。但当它发送到公共IP时,我得到IO异常,并显示以下消息:“发送数据报失败”。但是,UDP服务器可以向任何IP地址(本地或公共)发送数据包。是的,我关掉了电脑。这并没有改变任何事情。我无法切换客户端服务器,因为我一次只使用一个模拟器实例。我没有防病毒软件,我在测试期间关闭了防火墙。