xxftpFTP服務(wù)器小程序
如有需要,可自行編譯Linux版本!
筆記:
已經(jīng)寫(xiě)了很多個(gè)FTPServer了。。。可以說(shuō)是滾瓜爛熟,代碼都可以背出來(lái)!
記得上次那個(gè)是用C#寫(xiě)的,不怎么好用,又吃?xún)?nèi)存,又吃CPU!
這次采用多線程寫(xiě)的xxftp,體積不到64KB,運(yùn)行一段時(shí)間之后才占用幾MB的內(nèi)存,而且很好用!
對(duì)于像我這樣做免費(fèi)服務(wù)又節(jié)約資源的站長(zhǎng),適合的才是最好的!
每寫(xiě)一次FTPServer,較之前都有很大的,思路一次比一次清晰,代碼一次比一次好看,功能一次比一次強(qiáng)大!
這次增加了OPTS,F(xiàn)EAT,EPSV,EPRT,MTDM等命令,詳見(jiàn)源代碼中的ftp.h。
這次的服務(wù)器模型跟之前寫(xiě)homeserver是不同的,這次不是很注重并發(fā)響應(yīng)能力。之前的homeserver在啟動(dòng)的時(shí)候就初始化了足夠的線 程來(lái)等待用戶(hù)請(qǐng)求,避免響應(yīng)遲鈍的現(xiàn)象。而xxftp服務(wù)器運(yùn)行時(shí)候,啟動(dòng)一個(gè)守護(hù)線程用來(lái)回收超時(shí)或者已經(jīng)結(jié)束的FTP連接,啟動(dòng)一個(gè)監(jiān)聽(tīng)線程等待用戶(hù) 連接。當(dāng)有連接請(qǐng)求時(shí),創(chuàng)建一個(gè)connection對(duì)象和對(duì)應(yīng)的線程去處理用戶(hù)請(qǐng)求。
