freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

畢業(yè)論文基于linux的ftp服務器的研究與實現(xiàn)-wenkub.com

2024-11-03 20:55 本頁面
   

【正文】 最后感謝本同學,在設計過程中給我提供了一些寶貴的幫助和建議。 return。 if(0) =0。 mytime=transfer_data/。 float mytime。 } 福州大學陽光學院本科生畢業(yè)設計(論文) 28 附錄四 計算上傳下載實時速度程序 函數(shù)功能 :測試 PASV或 PORT 參數(shù) :信號編號 返回值 :數(shù)據(jù)連接套接口 void alrm_handl(int signum) { struct timespec req。cli_addr,amp。 data_conn_sock=sockk。cli_addr,addrlen)。 sockk=socket(AF_INET,SOCK_STREAM,0)。 =htons(20)。 =i_addr(port_ip)。 //客戶端地址 memset(amp。} 福州大學陽光學院本科生畢業(yè)設計(論文) 26 附錄三 主動被動模式測試程序 函數(shù)功能 :測試 PASV 或 PORT 參數(shù) :無 返回值 :數(shù)據(jù)連接套接口 int test_pasv_or_port() { struct sockaddr_in cli_addr。i=2 。//創(chuàng)建新的會話期 pid = fork()。 pid = fork()。 test_max_count(1)。 char tmp[20]。 client_session()。 } pid=fork()。 if(nowipcount=conf_ipcount) { sleep(3)。 } temppp=(char *)hash_getval(hash_ip_count,tempppp,1)。//取出共享內存里當前連接數(shù) if (nowcounts=nowservermax)//如果大于最大連接數(shù) continue { sleep(3)。errno==EINTR) { perror(accept)。cliaddr,amp。 create_shm_sem()。//創(chuàng)建套接口 重用綁定偵聽 nowservermax=atoi((char *)hash_getval(hash_conf,servermax,1))。//hash int nowcounts,nowipcount。 char *tempppp。其代碼經(jīng)過反復的審計,并對新型的漏洞進行過很多研究及探討 [15]。因此如果 FTP 只使用 root 權限,服務器的安全性就會受到非常嚴重的威脅。上傳壓縮可以節(jié)省上傳的空間,使得同一空間可以有更多的資料供用戶下載。這些都使得本課題所實現(xiàn)的 FTP 服務器在客戶的應用體驗上和數(shù)據(jù)安全方面具有進一步的提高。 55 被動模式登陸 基于 Linux的 FTP 服務器 19 ( 5)客戶端登陸結果如下圖所示。配置文件如 52 所示。 調試結果 ( 1) 服務器的啟動 在 Linux 下輸入腳本命令 service hfftpd start 就會開啟服務器如圖 51 所示。 調試過程及結果 調試過程 調試主要的步驟是首先將要編譯的文件用特殊的文件格式寫到 makefile 文件里面。綜上所述可得哈希表的圖解如 46;信號響應的處理流程如 47 所示;服務器要 IP 總連接數(shù)和單 IP 連接數(shù)的控制過程的流程圖在附件中。維護信號量狀態(tài)的是 Linux 內核操作系統(tǒng)而不是用戶進程。 ( 2) 若此信號量的值為正,則允許進行使用該資源,進程將信號量減 1。另外,可以通過使用 shmctl 函數(shù)設置共享存儲內存的某些標志位 [12]。在這里的參數(shù)“ NULL” 意味著系統(tǒng)選擇可分配的地址 , 如果寫固定地址的話一定要保證該地址未被分配出去,就算未被分配出,寫的地址也一定是該處填的地址的整數(shù)倍或映射到與內存頁相對齊的位置 。在 Linux 系統(tǒng)下得到共享內存常用的方式是通過 shmXXX 函數(shù)族來實現(xiàn)利用共享內存進行存儲的。 單 IP 連接數(shù)和總連接數(shù)的控制實現(xiàn) 對單 IP 連接數(shù)和總 IP 連接數(shù)的控制主要是 為了系統(tǒng)資源的安全性的一個考慮,同時也會局域網(wǎng)里面提供了一個很大的方便。那么如何計算當前的上傳和下載的字節(jié)數(shù)呢?這就是判斷是否為port 接受上傳的命令 創(chuàng)建套接字 SOCKK 創(chuàng)建套接字接收客戶端的連接 返回值 data_conn_sock 為創(chuàng)建的新連接返回的套接字 綁 定 是否成功 監(jiān)聽 返回值創(chuàng)建的新連接返回的套接字 開始 結束 福州大學陽光學院本科生畢業(yè)設計(論文) 14 我下面要講的重點內容。而哈希表在這里的主要作用是通過一個進程號找到 IP 地址,再通過 IP 地址找到目前為單 IP 的連接數(shù)。測試函數(shù)的流程圖 44 如下: FTP 服務端 FTP 客戶端 FTP 服務端 FTP 服務端 基于 Linux的 FTP 服務器 13 否 是 否 否 是 圖 44 測試函數(shù)流程圖 監(jiān)控模塊的實現(xiàn) 本系統(tǒng)的監(jiān)控模塊主要設計了以下內容,其中第一和第二兩點是重點內容,第三點基本的 FTP 服務器都有。然后,如果是主動連接的時候,就把從客戶端得到的 IP 和端口號放入到哈希表里面,用于以后的 IP 連接數(shù)控制。 工作模式的實現(xiàn) FTP 的過模式主要主動模式 (port)好被動模式 (pasv),兩種模式的模型如圖 43 所示。 ( 7) 處理 SIGCHLD 信號 進程結束的時候,系統(tǒng)會發(fā)出 SIGCHLD 信號。 ( 5) 改變當前工作目錄 Linux 規(guī)定進程的工作目錄在其運行的時候是不允許被卸下的,如果把進程的 工作目錄放到自定義的目錄的話,可能會出現(xiàn)被關閉而卸下的情況。 ( 3) 禁止進程重新打開控制終端 通過上面的設置進程就可以脫離控制終端限 制,但是它仍然可以向系統(tǒng)申請一個新的控制終端,這樣有了控制終端又會受到控制,為了避免這種情況,就要使進程不能成為會話組長。 守護進程是生存期很長的一種進程,它會自動轉到后臺運行而且脫離與終端的聯(lián)系不受終端的控制, 為了能夠等待解決一些事件的發(fā)生,它執(zhí)行任務的時候是用周期性重復的執(zhí)行方式 , 因此為了避免掛起,我在 FTP 也創(chuàng)建了一個守護進程來守護本 FTP服務器。系統(tǒng)通過 case 程序中的 $1 的參數(shù)只能允許為 start,stop,restart,來判斷得到哪一個參數(shù)而做其所對應的工作。 stop) stop 。amp。因此 SHELL 不僅可以用來執(zhí)行命令,還可以用來編寫程序,并且它使用的是解釋型語言,對其調度相對 C 語言來說比較容易 [9]。 否 是 圖 41 程序主流程 導入配件 創(chuàng)建守護進程 創(chuàng)建共享內存并且進行初始化 創(chuàng)建數(shù)據(jù)進程并進入相應的函數(shù)進行處理 創(chuàng)建套接字并監(jiān)聽 接收客戶端連接創(chuàng)建新的套接字 是否接受該用戶的連接 創(chuàng)建子進程并處理該用戶 開始 結束 基于 Linux的 FTP 服務器 9 進程的啟動 在 Linux環(huán)境下編程可以利用一個很好的工具,這個工具就是功能非常強大的 SHELL,在 Linux 中 SHELL 是“ Bash”。當服務器接收到文件傳輸請求后建立“數(shù)據(jù)傳送進程”和“數(shù)據(jù)連接”,文件傳送結束后關閉數(shù)據(jù)傳送進程,并結束運行。它使用客戶服務器的方式,一個服務器進程可以被多個客戶進程連接,主要由兩大部分組成,一個是主進程,負責接收新的請求,一個是負責單個請求的從屬進程, FTP 的工作 情基于 Linux的 FTP 服務器 7 況圖 31 所示。 ( 5)工作模式指的是 pasv 模式和 port 模式。 ( 3)文件操作模塊包括刪除文件,重命名文件,它一般和目錄操作命令混合使用。 ( 1)登錄模塊包含本地用戶登錄和匿名用戶登錄兩種方式,匿名用戶登錄時要注意只能將其控制在 /var/ftp 目錄下但是在客戶端只能默認出現(xiàn)在根部錄下。當然使用 TCP 主要是根據(jù)字節(jié)流的傳輸,因此可能會出現(xiàn)接收方收的不夠或者太多問題,還有可能會出現(xiàn)擁塞問題,可是對于這些問題,我都在程序中會做相對應的處理。 因此,本系統(tǒng) ftp 的啟動,重啟,及關閉 都是運用 shell 的強大功能來實現(xiàn)的。根據(jù)調用進程的登錄用戶標識建立所有的憑證和環(huán)境 。而且 gcc 因為可以在所有的平臺上面使用同一個前端處理程序,所以通常用來作為跨平臺軟件的編譯器 [6]。 基于 Linux的 FTP 服務器 5 3 基于 Linux 的 FTP 服務器設計方案及原理 可行性分析及方案的確定 首先,因為服務端的軟件是一個守護進程,不需要圖形界面,因此可以用比較低級的語言來開發(fā),但是 C 語言相對 C++, JAVA 等語言來說冗余比較少,不僅如此, C 語言是一種結構式的語言,有指針的概念,用戶可以自己自定義數(shù)據(jù)的類型,靈活性比較高。 圖 21 基于 Linux的 FTP 服務器框圖 服務器的設計要求 由圖 21 可知,為了完成課題基于 Linux 的 FTP 服務器需要完成如表 31 的功能。針對以上的問題,我在本課題里面多加了對上傳下載速度的限制以及 IP 連接數(shù)的控制來解決。 不過目前的 FTP 服務器很多都沒有設置對客戶端文件的上傳下載速度的限制以及 IP連接數(shù)單 IP 連接數(shù)的控制。其次,虛擬機是使用軟件技術把一臺運行在因特網(wǎng)上的服務器主機分成多個相對獨立的域名 和IP 地址的虛擬主機,并且每個虛擬機上面都具有完整的 Inter 服務器功能,虛擬機之間各自獨立互不干擾,這就決定了一臺計算機上面可以運行多個 FTP 服務器。隨著網(wǎng)絡的發(fā)展,局
點擊復制文檔內容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1