【问题标题】:Use Socket-communication over different networks在不同的网络上使用 Socket 通信
【发布时间】:2025-08-14 12:50:01
【问题描述】:

大家好,*ers!

我目前正在开发这个应该能够进行设备到设备通信的应用程序。 我找到了this 很酷的指南,了解如何使用 Socket 进行这种通信。它奏效了! ..ish。

我的问题是它仅在两台设备连接到同一个 Wi-Fi 时才有效。太糟糕了...因此,如果设备-A 是服务器,设备-B 是客户端,并且我使用内部 IP 地址(例如 192.168.1.blahblahbla),那么它可以工作。

-That's awesome, then why're complaining bro?

嗯,我希望能够连接到设备 A 的外部 IP,即真实 IP(如 94.254.blabla.blabla)。所以我想问你们,我该怎么做?我怎样才能做到这一点?

所有帮助都将得到重视, 提前致谢。

此致,曼斯。

【问题讨论】:

标签: android sockets serversocket


【解决方案1】:

这更像是一个网络问题,但答案是没有区别。唯一不同的是您必须使用防火墙保护。如果您可以使用私有 IP 而不是公共 IP 连接到设备,这意味着有一些东西阻止了您的连接(可能是防火墙或路由器的防火墙)。

您必须确保您在目标设备上连接的端口没有被阻止连接。其余的都是一样的。

【讨论】:

  • 几乎所有 移动 网络提供商都会运行防火墙来阻止传入连接。
  • 我的意思是如果用户正在使用与路由器相关的 WiFi 连接。
  • 啊,我应该仔细阅读,我以为发帖人是要支持3g,而不是支持不同的wifi网络。无论如何,两者的通用解决方案是公共互联网上的中间服务器,因为重新配置所有这些 wifi 网络是不确定的。
  • 同意。我想 OP 只是想测试一下,看看这些事情是如何进行的,但如果这是一个广泛的应用程序,它肯定应该按照你描述的方式完成。
最近更新 更多