【发布时间】:2011-11-09 12:21:06
【问题描述】:
我正在使用 java 为消息传递服务 (P2P) 开发移动应用程序我仍处于早期阶段,并且正在寻找最适合此类应用程序的最佳和最合适的协议。正如我所发现的。套接字编程比 Web 服务更好。如您所知,它不需要为发送的消息添加额外的数据(开销),因此成本会更低。
除了套接字和 HTTP,还有第三种选择吗?
套接字是选择哪种最好使用TCP或UDP?!
这个问题对任何其他选项都是开放的,不仅是这里提到的 并提前感谢您
【问题讨论】:
我正在使用 java 为消息传递服务 (P2P) 开发移动应用程序我仍处于早期阶段,并且正在寻找最适合此类应用程序的最佳和最合适的协议。正如我所发现的。套接字编程比 Web 服务更好。如您所知,它不需要为发送的消息添加额外的数据(开销),因此成本会更低。
除了套接字和 HTTP,还有第三种选择吗?
套接字是选择哪种最好使用TCP或UDP?!
这个问题对任何其他选项都是开放的,不仅是这里提到的 并提前感谢您
【问题讨论】:
HTTP 和 TCP/UDP 位于通信系统模型的不同层(两个最流行的是 OSI 模型和 TCP/IP 模型)。 HTTP 建立在套接字之上(这就是为什么会有额外的开销),所以从技术上讲 - 它们不是不同的解决方案。
使用 HTTP 的优势在于拥有大量库、文档和示例可供使用,而编写自己的自定义协议可能需要更多时间和精力,但可能会更轻松。
如果您选择原始套接字...我无法告诉您应该使用 TCP 还是 UDP - 这取决于很多因素,但基本区别在于,如果存在连接,TCP 连接将保证成功传递如果没有可用或错误消息,而 UDP 只是发送数据而不关心它是否到达那里(例如,对于流式传输实时视频,没有必要确保每一位数据都在传输,因为 1 秒后它不再相关)。
没有正确或错误的答案 - 您只需要考虑所有涉及的因素并仔细设计整个过程。
【讨论】: