1

我目前正在开发一个需要能够拦截 SMS 消息的 Blackberry 5.0 应用程序。我正在尝试向模拟器发送短信。我遇到了建议运行模拟器的两个单独实例并使用两个模拟器上的 SMSDemo 示例应用程序从一个模拟器实例向另一个实例发送 SMS。

我从两个单独的工作目录运行模拟器的两个实例,如下所示:

"C:\java\blackberry\eclipse\plugins\net.rim.ejde.componentpack5.0.0_5.0.0.36\components\simulator\fledge.exe" /app="C:\java\blackberry\eclipse\plugins\net.rim.ejde.componentpack5.0.0_5.0.0.36\components\simulator\Jvm.dll" /sms-source-port=6000 /sms-destination-port=6001

"C:\java\blackberry\eclipse\plugins\net.rim.ejde.componentpack5.0.0_5.0.0.36\components\simulator\fledge.exe" /app="C:\java\blackberry\eclipse\plugins\net.rim.ejde.componentpack5.0.0_5.0.0.36\components\simulator\Jvm.dll" /sms-source-port=6001 /sms-destination-port=6000

两个实例都启动了,但是当我尝试发送 SMS 时,它永远不会到达第二个模拟器。

我已禁用 Windows 防火墙 - 没有变化。

当我对 UDP 进行 netstat 时,我可以看到端口 6000 和 6001 都在监听。

任何意见,将不胜感激。

4

1 回答 1

1

我终于找到了解决问题的方法。这里是:

使用 Wireshark 嗅探来自模拟器的 UDP 广播,我注意到目标地址不正确 - 它的“1.0.0.127”。这个地址是不可路由的,所以从一个模拟器发送的数据报永远不会到达另一个模拟器。

我可能错过了它,但在启动模拟器以指定目标地址时,我看不到任何要设置的命令行参数。

我将我的开发笔记本电脑更改为使用硬编码的 IP 地址而不是 DHCP。然后,我将 1.0.0.127 作为另一个 IP 地址添加到我的 TCP/IP 设置中。该地址现在是可路由的。

在不更改端口设置(/sms-source-port 和 /sms-destination-port)的情况下重新启动了两个模拟器,它工作正常。我不需要使用 SMSDemo 应用程序。我使用了普通的黑莓消息应用程序。

我希望这可以帮助其他遇到同样问题的人。

于 2012-06-15T14:18:00.743 回答