-2

I'm sending/receiving a file (on localhost) through UDP Datagram, and now I want to assemble the received packets to create that received file and save it on some path (desktop for example) .. what should I do? any idea?

You can find my client/server implementation here:

Is it possible to use just 1 UDPSocket for sending/receiving on the same port?

Thanks!

4

1 回答 1

0

你要做的就是:像TCP这样的算法。通过 UDP 创建协议,如 TCP 协议。

1)您需要对 UDP 数据包进行排序 2)您不需要自定义校验和,因为 UDP 已经有 3)发送端缓冲区,您的代码将写入缓冲区,您的协议会将数据从缓冲区发送到接收器作为一些长度的数据包(MTU 大小很好,UDP数据包中大约1400字节)。数据包将具有序列号。4) 接收方在接收数据包时检查 seq。number,如果收到数据包的seq。no 是预期的 seq no,您可以将其缓冲以写入文件,否则将此数据包放入临时缓冲区并将丢失数据包的信息发送回发送者。5) 接收方将发送回接收到的最高 seq no 或丢失的 seq no 的 ACK。6) 发送方将根据接收方的回复执行。

我想你有一些想法。你需要多线程......在每台机器上你需要一些发送者、接收者、应用程序线程来实现这样的算法。

顺便说一句,我已经实现了这个算法,并得到了很好的结果。我能够以 75 Mbps 的速度传输文件,其中 TCP 在 100 Mbps 互联网连接上的峰值速度未能达到 5 Mbps 以上,往返时间约为 100-200 毫秒。从印度到加拿大。

我希望这对你有所帮助。

于 2012-12-31T07:51:49.670 回答