- 文件上传,保证正确性的同时尽量提高传输速度
- 适应各种网络环境,弱网(传输速率慢,丢包率高),网络切换(连接中断,IP变化)
- 采用TCP协议保证传输的正确性
- 客户端断线自动重连,与服务器协商进行断点续传
- 向服务器发送待传文件信息(大小,MD5哈希值)
- 把文件按照一定大小(目前为1K)分为若干个块
- 接受服务器返回的确认包,通过其内容决定是否进行断点续传,从第几(i)块开始续传
- 发送第i个文件块的头信息(4字节标志信息+当前块ID)
- 发送第i个文件块,若发送失败,返回第1步;若发送成功并且i小于文件总块数,i增加1,返回第4步;若发送成功并且i不小于文件总块数,结束传输。
- 可否用UDP替代TCP协议,以提高传输速度
- 固定的文件分块大小可能导致带宽较小又不稳定用户一直无法传输成功一个文件块。