一、從客戶端上傳文件給服務器
1、客戶端發送 “STOR+文件名” 命令給服務器
2、客戶端將文件數據 fread() 和 send() 給服務端
3、服務端用 recv() 接收數據後 fwrite() 至本地文件
4、網絡斷開,關閉 socket
5、客戶端重新連接至服務端並正常登陸
6、客戶端發送 “APPE+文件名” 命令給服務器
(1)、客戶端發送 “SIZE+文件名” 命令給服務器
(2)、服務器返回文件大小
7、客戶端根據文件大小,從斷點處發送數據給服務器
8、服務端接收數據並追加到文件末尾
二、從服務器下載文件到客戶端
1、客戶端發送 “RETR+文件名” 命令給服務器
2、服務器將文件數據發送給客戶端
3、客戶端接收後寫至本地文件
4、網絡斷開,關閉 socket
5、客戶端重新連接至服務端並正常登陸
6、客戶端發送 “REST+文件長度” 命令給服務器
7、客戶端發送 “RETR+文件名” 命令給服務器
7、服務器根據文件大小,從斷點處發送數據給客戶端
8、客戶端接收數據並追加到文件末尾