我正在开发一个使用java进行消息传递服务(P2P)的移动应用程序我还处于早期阶段,并且正在搜索这种应用程序的最佳和最合适的协议。正如我所发现的那样。套接字编程比Web服务更好。如您所知,它不需要为发送的消息添加额外的数据(开销),因此它的成本会降低。
是否有第三种选择,而不是套接字和& HTTP?
socket是选择什么是最好使用TCP或UDP?
对于任何其他选项,问题是开放的,而不仅仅是这里提到的内容 并提前谢谢
答案 0 :(得分:1)
HTTP和TCP / UDP位于通信系统模型的不同层中(最受欢迎的两种是OSI模型和TCP / IP模型)。 HTTP建立在套接字之上(这就是为什么会有额外的开销),所以从技术上讲 - 它们并不是不同的解决方案。
使用HTTP将为您提供使用大量库,文档和示例的优势,而编写自己的自定义协议可能需要花费更多的时间和精力,但可能会更轻。
如果您选择原始套接字......我不能告诉您是否应该使用TCP或UDP - 这取决于很多因素,但基本区别在于,如果有连接,TCP连接将保证成功传送如果没有可用或错误消息,而UDP只是发送数据而不关心它是否到达(例如,对于直播视频流,确保每一位数据都被传输没有意义,1秒后它不再相关了。)
没有正确或错误的答案 - 您只需要考虑所有相关因素并仔细设计整个过程。