gpt4 book ai didi

java - 路由器后面的android套接字编程

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:00:33 25 4
gpt4 key购买 nike

我有一个疑问或问题。我正在尝试在两部安卓手机之间建立 p2p 连接。我让每部电话都连接到我的服务器,我获得了它们的私有(private) (192.168.1.1) 和公共(public) (76.123.288.22) IP 以及它们连接到我的服务器的端口。当手机连接到服务器以打开具有特定端口的服务器套接字时,我会发送响应。我还向另一部手机发送了打开套接字的公共(public) IP 和端口,但它没有连接。我在这里阅读了多个线程,如果手机或计算机都在两个不同的路由器后面,则无法进行 p2p 连接。我的问题是这是否属实,如果属实,LogMeIn 或其他 p2p 应用程序如何在不同的路由器后面工作?是编程错误还是网络架构不允许?

最佳答案

有几种技术可以实现这一点 - STUN , TURN , ICE仅举几例。您可以阅读它们中的每一个,以及 Skype、gtalk(现为 2018 年 3 月的 google talk)等软件使用这些技术。

但这里要理解的主要概念是,

  1. 您需要一个可公开访问的 ip,以便您可以连接到它。如果它在专用网络上的路由器后面,则您需要路由器上的端口转发,即您需要向该路由器添加规则,以将在特定端口上接收到的流量转发到路由器后面的服务器.在某种程度上,上述技术隐含地或通过涉及外部第 3 方服务器实现了这一点。

  2. 您需要在最初连接的机器上允许传入连接。通常 windows 或 linux 防火墙会阻止所有传入连接,除非添加异常(exception)。这可能是您的两个节点都需要的。

对于最后一部分,我不在 android 上编程,所以我不太确定它是否允许为传入连接等添加规则。但我知道 gtalk 有一个 android 客户端,gtalk 使用 XMPP,它在内部可以使用任何我在上面指出的技术。所以没有理由相信为什么它不能在安卓手机上完成。

添加一些更有用的引用:

libjingle (2018 年 3 月更新链接)是 google 的一个开源库,可用于编写 p2p 应用程序,包括文本、音频和视频。

它似乎也被编译为 android here

关于java - 路由器后面的android套接字编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13334545/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com