繁体   English   中英

是否可以通过互联网在两个移动设备(iPhone)之间连接插座?

[英]Is it possible to connect a socket between two mobile devices (iPhones) over the internet?

是否可以通过互联网在两个移动设备(iPhone)之间连接插座?

我试图发现每个设备的IP并直接连接。 我知道可以用Bonjour完成,但这只适用于本地网络。 我需要通过互联网在两台设备之间建立高速连接。

谢谢。

如果你有两个IP并且它们都是可路由的,那么它应该是可能的。 我不确定3G网络发出的IP是否可以路由。 如果您使用的是WIFI,那么您获得的IP几乎肯定不可路由。 假设你有一个可路由的IP,它应该是可能的。

诀窍是发现其他设备的IP。 最好的方法是在应用启动时让每个设备使用Web服务注册其IP,然后查询该服务以查找其他设备的IP。

当应用程序关闭或IP更改时,管理“取消注册”IP可能会有点棘手,但它应该是可行的。

ETA:

如果您有一台可以连接的服务器,您应该能够使用该服务器实现解决方案(即,实际上没有电话直接连接到彼此)。 这将避免为电话提供可路由的IP的问题。

至于如何将插座桥接在一起 - 您的服务器程序基本上就像老式电话总机操作员一样工作。 您可以在服务器软件中内置某种注册和发现协议,允许手机在服务器上注册,查询当前连接到服务器的其他手机列表,指出要与之通话的手机,并接受来自其他手机的连接。

一旦知道谁想与谁交谈,您的服务器软件就会通过从一个电话的插座读取并将该数据写入另一个电话的插座来将两者连接在一起。

只有一个建议,但如果你可以让他们每个人连接到第三个网站,你就会知道每个网站的地址。 将电话A的地址发送到电话B(和/或将电话B发送到电话A),然后根据需要将它们连接起来。

这是一个老线程,但我刚刚遇到它。 您可以使用STUN服务器(或NAT-PMP)获取公共IP地址/端口组合,然后将其发送到另一部电话。 只要您在第一台设备上打开一个监听端口,那么您的第二台设备就可以直接使用您在SMS中发送给它的publi IP地址/端口直接连接(SMS推送注册表可以自动将您的应用程序在第二台设备上唤醒做这个)

我正在使用我正在开发的应用程序遇到此问题。 我试图从iPhone连接到PC手机卡。 问题是AT&T不支持iPhone的移动终端,因此AT&T网络上的两部电话实际上不可能相互连接。 这直接来自AT&T天线工程师。

我能够通过将iPhone VPN连接到服务器然后连接到PC单元卡来实现这一点,但除此之外,它不起作用。

你看过3.0版的所有功能吗? 特别是对等网络(其存在是公共的)。

WiFi路由器通常具有称为“端口触发”的功能,其允许内部主机(在这种情况下为iPhone)通知路由器他们希望在转发给它们的特定端口上具有连接。 我不知道iPhone是否支持这个协议。

对于IP查找,如果两个主机提前知道,或者如上所述,如果不是自定义Web服务,则可以考虑使用DynamicDNS(即,朋友交换主机名与陌生人互相发现)

我有一种非常强烈的感觉(但没有证据)iPhone地址将是不可路由的。 当然它实际上取决于运营商,但AT&T给出10.xxx地址。

Apple有样本(桌面)代码 ,使用Bonjour在支持UnPnP的WiFi路由器上实现端口映射。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM