【问题标题】:Can an android app send data packets to other phones?安卓应用程序可以向其他手机发送数据包吗?
【发布时间】:2012-03-06 19:03:55
【问题描述】:

我正在尝试弄清楚这是否可能:

我有兴趣编写一个可以在点对点设置中玩的简单游戏,而不必通过一些中间服务器。我正在考虑使用类似于 SMS 工作原理的东西,但我不知道这些例程是否可以访问。

据我了解,SMS 只是一个具有特定结构的数据包,在某个端口上,它作为唯一标识符发送到电话号码,而不是 IP 地址。如果是这种情况,是否可以使用与 SMS 使用类似的例程来向另一部手机发送消息,但是以 SMS 不会接收它的方式,并且如果可以理解该数据包的应用程序不是运行,那么数据就会被忽略?

【问题讨论】:

  • 手机会靠近吗?然后使用蓝牙,否则您将需要某种服务服务器。短信可以,但不够实时且有限
  • @JPM 没有。我的意图是做一些类似于桌面应用程序的事情,它可以作为独立服务器并允许其他程序通过 IP 连接到它。每部通过 3/4G 连接的电话在技术上都有一个 IP 地址。我正在研究仅根据电话号码确定电话 IP 地址的可能性。
  • 不确定你能做到这一点,但值得一试我能够使用 ATT 电话设置套接字服务,然后从专有设备与电话进行通信。

标签: android communication


【解决方案1】:

您可以编写发送短信和接收短信的应用程序。需要记住的一些事项:

  • SMS 往往很昂贵,尤其是与 IP 流量相比。
  • 用户必须授予应用发送和阅读短信的权限。他可能不会这样做,因为他知道这很昂贵。
  • 即使用户合同提供 SMS 统一费率,提供商也可能会限制发送的 SMS 的实际数量或禁止自动化的高流量使用。
  • SMS 可能比 IP 数据包慢得多。
  • 如果用户试图与未安装应用程序的人一起玩,那可怜的人的短信收件箱将被这些短信淹没。

因此,为此目的使用 SMS 通常是个坏主意。如果用户彼此接近,一些替代方案:

  • 使用蓝牙。
  • 使用 Wifi(大多数 android 手机不允许 ad-hoc 连接,但有些手机可以充当接入点,以便其他人可以连接到它)。
  • 也许:使用 NFC(只有一些最新的手机有这个功能,我不知道你是否可以这样使用 NFC)。
  • 通过 Internet 使用 P2P(这需要至少一个提供商允许其网络上使用公共 IP 的传入连接,例如没有内部 NAT)。
  • 使用处理手机之间流量的服务器。

【讨论】:

  • 那么 SMS 是不同于标准 TCP 流量的服务和/或协议吗?有什么方法可以仅根据电话号码获取电话的 IP 地址?
  • 正确,两者不同。旧手机支持某种 SMS 协议,但没有 TCP 协议栈。最近的智能手机可以同时具备这两种功能,但仍有许多智能手机没有一直连接到互联网。只有当手机有互联网连接时,它才会有一个 IP 地址(通常在每次重新连接时都会更改),因此无法将电话号码映射到 IP 地址。
猜你喜欢
  • 1970-01-01
  • 2021-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多