我正在尝试弄清楚这是否可能:
我有兴趣编写一个可以在点对点设置中玩的简单游戏,而不必通过一些中间服务器。我正在考虑使用类似于短信工作原理的东西,但我不知道这些例程是否可以访问。
据我了解,短信只是一个具有特定结构的数据包,在某个端口上,它被发送到电话号码作为唯一标识符,而不是 IP 地址。如果是这种情况,是否可以使用与 SMS 使用的类似例程来将消息发送到另一部手机,但以这样的方式 SMS 不会接收它,并且如果能够理解该数据包的应用程序不运行,那么数据就会被忽略?
最佳答案
您可以编写发送短信和接收短信的应用程序。需要记住的一些事情:
- 短信往往很昂贵,尤其是与 IP 流量相比。
- 用户必须授予向应用发送和读取短信的权限。他可能不会这样做,因为他知道这很贵。
- 即使用户契约(Contract)提供短信固定费率,提供商也可能会限制发送的短信的实际数量或禁止自动、高流量的使用。
- SMS 可能比 IP 数据包慢得多。
- 如果用户尝试与未安装该应用的人一起玩,那个可怜的人的短信收件箱将会被这些短信淹没。
因此,使用短信来实现这一目的基本上是一个坏主意。如果用户彼此足够接近,则可以选择一些替代方案:
- 使用蓝牙。
- 使用 Wifi(大多数 Android 手机不允许临时连接,但某些手机可以充当接入点,以便其他手机可以连接到它)。
- 也许:使用 NFC(只有一些最新的手机有此功能,我不知道您是否可以通过这种方式使用 NFC)。
- 通过互联网使用 P2P(这要求至少有一个提供商允许使用公共(public) IP 在其网络上进行传入连接,例如无内部 NAT)。
- 使用处理手机之间流量的服务器。
关于android - Android应用程序可以向其他手机发送数据包吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9590161/