【发布时间】:2017-05-10 06:08:15
【问题描述】:
我必须用 Java 做一个 bittorrent 应用程序项目,它需要通过 UDP 协议而不是 TCP 传输数据。在这个项目中,老师要求我保证UDP协议的可靠性。于是在网上搜索了一些解决方案,发现在java中,有“ReliableSocket”和“ReliableServerSocket”等类。所以我想知道这些类可以满足我项目的要求。这两个类有什么区别?
非常感谢您的帮助
【问题讨论】:
-
Tcp 是一个可靠的协议,意味着该协议是可靠的,并且是从封装的应用程序层抽象出来的。 udp 不是,因此首先对数据包或会话应用一些排序(在 udp 中没有会话之类的东西,您必须在应用层中创建它),以便可以组装乱序接收的数据包并检测丢弃的数据包并让他们怨恨。基本上,Tcp 为您所做的所有事情都有效且整洁地从您身上抽象出来,您必须做。我会说为什么不只使用Tcp?似乎对现有技术的利用不佳。
-
也相信 google 已经完成了他们自己的 Udp 版本,称为 Quick,我认为它旨在成为 tcp 的更高性能替代品,尽管我不确定 Quick 的细节,因为它是不是像 tcp 和 udp 那样的互联网标准。但是如果它是由谷歌完成的,那么可能有一些 nodejs 包。
-
这是 Oracle Java 还是 javascript?我现在假设是 Oracle Java。
标签: sockets udp reliability