2

作为一种通信方法,TCP 是通过 3g 从另一个 android 设备获取大量数据到多个 android 设备的最佳方式吗?还有推荐的端口用于 3g 数据传输吗?

我想排除使用网络服务中介的可能性,因为我希望这个应用程序尽可能去中心化。

干杯,詹姆斯

4

3 回答 3

1

作为一种通信方法,TCP 是通过 3g 从另一个 android 设备获取大量数据到多个 android 设备的最佳方式吗?

鉴于您的“无 Web 服务”限制,3G 可能对您毫无用处。许多移动运营商使用 NAT 和相关技术,因此无法保证在两个设备之间建立直接套接字连接。WiFi 也是如此——许多 WiFi 路由器使用 NAT,分发私有 IP 地址,在不修改其中一个路由器的情况下排除直接套接字连接。

于 2010-06-15T14:19:17.047 回答
0

如果您有不能遗漏部分的数据,则必须使用 TCP。如果您的数据可能会丢失某些部分,例如视频/语音聊天,则可以使用 UDP。

3G 使用与任何其他网络类型相同的网络层,因此您可以自由使用任何您喜欢的端口。

于 2010-06-15T14:16:26.540 回答
0

一些 3G 网络可能会提供多播,这对于任何服务器来说都是最省力的,因为无论订阅者的数量如何,它都会发送一次消息。否则,每个侦听设备都将不得不向服务器打开一个唯一的套接字,并且服务器将不得不依次发送每个消息。根据消息的性质,可能使用 UDP 或 TCP。这一切都取决于消息是否需要确认,是否易变,是否有很多消息或只有几个等。

JMS 或消息总线之类的东西通常会为您处理所有这些。我不知道是否有 JMS 到 android 的端口(例如 OpenJMS),但它值得研究。

于 2010-08-18T15:49:10.097 回答