CSocket中UDP传送文件 问题

CSocket中UDP传送文件 有关问题
实现文件的发送和接收:
基于CSocket类,用udp来传输。

在发送端,如何把一个大文件分包?一般情况下包应该设置多大?

在接收端,如何将发送过来的小包组装成源文件。

我是在csocket中onreceive函数中接收数据。


这里求高手讲讲数据包的拆分注意事项。

------解决方案--------------------
那就用链表,一块一块的存啊.
------解决方案--------------------
Internet发包,每包1500以下
局域网内可以不考虑
收到的包小包组装成源文件,这个相对复杂一些,因为包有可能不按顺序到达,也有可能中间丢失一些,需要重发。一般的做法,是给每个包定个序号,收到了确认,没收到要求发送端重发。每包都确认的话效率低,可以参考TCP的滑动窗口模式,发送方先发32个包,然后等。收接方收32个,看看从1到31是否都收到了,然后回复。发送方检查一下,对方没收到的重发,收到的就可以不管了。双方都要在内存保存个列表,随时维护着。