我将一个7mb文件分成512b块,然后用udp将它发送到服务器。客户端发送大约14000个数据包,但在收到16个数据包后,在服务器端发送socket.receive(数据包)块。
有什么想法在这里发生了什么?
答案 0 :(得分:4)
UDP被定义为不可靠的协议。数据包可能会丢失,并且不会通知发件人。它们也可能无序到达,甚至重复也可能到达。
UDP适用于不需要错误检查和纠正的应用程序,或者由应用程序本身执行。
如果您需要可靠的协议,请开始使用TCP。
答案 1 :(得分:1)
与TCP相比,UDP既不确保数据包顺序也不确保实际传送(没有TCP中的流控制)。请参阅此问题:ensuring packet order in UDP