1

我正在为 Android 制作一个 IM 应用程序。该应用程序由服务器和客户端组成,两者都驻留在 android 上。启动时,应用程序向网络服务器注册。如果客户端想要向 NAT 路由器后面的服务器发送 IM,该怎么做?我听说过 stun4j 和 jstun,但没有找到它们在 android 中的使用示例。谢谢!

4

2 回答 2

1

为什么服务器必须在设备上?

这似乎无效,android 作为典型的客户端设备功能最好。

制作即时消息应用程序非常简单。

只需让客户端将消息发送到网络服务器,然后存储它们。
让其他客户端等待或轮询来自网络服务器的消息。

无论互联网连接类型如何,这都将起作用。

如果您坚持在设备上安装服务器,我认为您将获得的最接近的解决方案是使用某种 upnp 库。

使用 upnp,您可以告诉路由器自动为您的服务器端口设置 NAT。

不过,这不适用于在路由器中禁用了 upnp 的用户。

于 2010-09-02T14:02:33.163 回答
0

stun4j 不是适用于所有 NAT 的通用解决方案。

最简单和最可靠的解决方案是使用已知地址通过您的外部网络服务器发送消息。

于 2010-09-02T08:42:52.717 回答