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

正文內(nèi)容

一個基于linux的ftp系統(tǒng)畢業(yè)論文-預覽頁

2024-12-14 16:04 上一頁面

下一頁面
 

【正文】 口到 FTP 服務器的 20 端口(客戶端發(fā)送 ACK 響應到服務器的數(shù)據(jù)端口 S?C) 。 一類是 Real 帳戶。如系統(tǒng)的主目錄等等。服務器通過這種方式來保障 FTP服務上其他文件的安全性。這類用戶是指在 FTP服務器中沒有指定帳戶,但是其仍然可以進行匿名訪問某些公開的資源。因為這類用戶不僅可以訪問自己的主目錄,而且,還可以訪問其他用戶的目錄。 FTP協(xié)議的任務是從一臺計算機將文件傳送到另一臺計算機,它與這兩臺計算機所處的位置、聯(lián)接的方式、甚至是是否使用相同的操作系統(tǒng)無關(guān)。 1). ASCII 傳輸方式:假 定用戶正在拷貝的文件包含的簡單 ASCII 碼文本,如果在遠程機器上運行的不是 UNIX,當文件傳輸時 ftp 通常會自動地調(diào)整文件的內(nèi)容以便于把文件解釋成另外那臺計算機存儲文本文件的格式。 如果你在 ASCII 方式下傳輸二進制文件,即使不需要也仍會轉(zhuǎn)譯。)如果你知道這兩臺機器是同樣的,則二進制方式對文本文件和數(shù)據(jù)文件都是有效的。 Port模式 FTP 客戶端首先和 FTP 服務器的 TCP 21 端口建立連接,通過這個通道發(fā)送命令,客戶端需要接收數(shù)據(jù)的時候在這個通道上發(fā)送 PORT 命令。 Passive 模式在建立控制通道的時候和 Standard 模式類似,但建立連接后發(fā)送的不是 Port 命 令,而是 Pasv 命令。 格式為 : USER username 在登錄 ftp 服務器的時候先用此命令告訴服務器那個用戶要登錄此服務器。服務器檢查密碼的正確后,客戶端就與服務器連接起來了。 這個命令就是從服務器上注銷的過程 , 如果服務器收到該命令時 , 沒有文件正在傳達室輸 , 剛斷開控制 , 連接如果有文件正在傳輸 , 剛控制連接仍然保持 , 直到收 到有關(guān)傳輸結(jié)果的應答時 , 服務器才斷開連接 。 8) .TYPE: 表示文件類型,共有四種,所帶參數(shù)也有四種, A, E , I , L 分別對應 ASCII, EBCDIC, IMAGB 和 LOCAL 類型 。 12) . PORT: 指明數(shù)據(jù)連接的端口號 , 帶六個參數(shù) 。 使用格式: TOUCH filename 15).PWD: 在服務器上顯示當前工作目錄。 C 是一種結(jié)構(gòu)化的程序設計語言。該程序是在 linux 系列下的 C語言開發(fā),主要利用 linux C 下的 API Socket 編程。有連接方式如流通訊;無連接方式如數(shù)據(jù)包方式。 socket 的英文原義是 “ 孔 ” 或 “ 插座 ” 。每種服務都打開一個 Socket,并綁定到一個端口上,不同的端口對應于不同的服務。 socket 非常類似于電 話插座。然后向?qū)Ψ綋芴柡艚?,相當于發(fā)出連接請求(假如對方不在同一區(qū)內(nèi),還要撥對方區(qū)號,相當于給出網(wǎng)絡地址)。 所謂 socket 通常也稱作 套接字 ,應用程序通常通過 套接字 向網(wǎng)絡發(fā)出請求或者應答網(wǎng)絡請求。對于一個網(wǎng)絡連接來說,套接字是平等的,并沒有差別,不因為在服務器端或在 客戶端 而產(chǎn)生不同級 別。 阻塞 是一個術(shù)語,它使程序運行暫時 停留 在這個地方,直到一個會話產(chǎn)生,然后程序繼續(xù);通常 阻塞 是由循環(huán)產(chǎn)生的。 根據(jù)連接啟動的方式以及本地套接字要連接的目標,套接字之間的連接過程可以分為三個步驟:服務器監(jiān)聽,客戶端請求,連接確認。 連接確認:是指當服務器端套接字監(jiān)聽到或者說接收到客戶端套接字的 連接請求,它就響應客戶端套接字的請求,建立一個新的線程,把服務器端套接字的描述發(fā)給客戶端,一旦客戶端確認了此描述,連接就建立好了。客戶端不需要指定打開的端口,通常臨時的、動態(tài)的分配一個 1024 以上的端口。如果了解 Unix 系統(tǒng)的輸入和輸出的話,就很容易了解 Socket 了。流式是一種面向連接的 Socket,針對于面向連接的 TCP 服務應用;數(shù)據(jù)報式 Socket 是一種無連接的 Socket,對應于無連接的 UDP 服務應用。只是歷史上人們曾構(gòu)想將 AF(地址家族 address family)與 PF(protocol family 協(xié)議家族 )分開,但實際上這種區(qū)分并未真正推廣,所以現(xiàn)在 AF_INET 和 PF_INET 具有相同的意義 。調(diào)用Socket 函數(shù)時, socket 執(zhí)行體將建立一個 Socket,實際上 建立一個 Socket意味著為一個 Socket 數(shù)據(jù)結(jié)構(gòu)分配存儲空間。 socket在測量軟件中的使用也很廣泛 。 Linux 的 BSD 套接口支持下面的幾種套接口類型: 流式( stream) 這些套接口提供了可 靠的雙向順序數(shù)據(jù)流連接。即使數(shù)據(jù)能夠到達,也無法保證數(shù)據(jù)以正確的順序到達以及數(shù)據(jù)的單一性、正確性。 順序數(shù)據(jù)包( Sequenced Packets) 這種套接口和流式套接口相同,除了數(shù)據(jù)包的大小是固定的。服務器用來提供服務,而客戶機可以使用服務器提供的服務,就像一個提供 w e b 頁服務的 We b 服務器 和一個讀取并瀏覽 web頁的瀏覽器。一個 INET 套接口可以包括一個 I P 端口地址。對于一個 INET 套接口來說,服務器的地址就是它的 I P地址和端口號。一旦服務器使用一個套接口來監(jiān)聽連接請求,它就不能使用同樣的套接口來支持連接。設置一個 TCP/IP 連接就和設置一個業(yè)余無線電 連 接有很大的不同。此連接是通過交叉關(guān)聯(lián)的數(shù)據(jù)結(jié)構(gòu)和地址族表建立的。當系統(tǒng)啟動并初始化套接口界面時,將會調(diào)用每一個協(xié)議的初始化進程。 數(shù)據(jù)結(jié)構(gòu) proto_ops包括地址族的類型以及指向與特定地址族有關(guān)的套接口操作程序的指 針。 第一個參數(shù)指定應用程序使用的通信協(xié)議的協(xié)議族,對于 TCP/IP 協(xié)議族,該參數(shù)置 AF_INET。 該函數(shù)如果調(diào)用成功就返回新創(chuàng)建的套接字的描述符,如果失敗就返回INVALID_SOCKET。每個進程在自己的進程空間里都有一個套接字描述符表但是套接字數(shù)據(jù)結(jié)構(gòu)都是在操作系統(tǒng)的內(nèi)核緩沖里。 Source Insight 提供了最快速的對源代碼的導航和任何程序編輯器的源信 息。 Source Insight 相較其它的編輯器產(chǎn)品來說,還可以幫您分析源代碼,并在您編輯的同時立刻提供給您有用的信息和分析。 第三章 FTP 服務器與客戶端需求分析 選擇好開發(fā)工具,我們用的是 redhat linux 5 內(nèi)核版本是 。所以在編程的時候會用到多進程編程,和進程間通信等知識。 格式為 : USER username 在登錄 ftp 服務器的時候先用此命令告訴服務器那個用戶要登錄此服務器。服務器檢查密碼的正確后,客戶端就與服務器連接起來了。 這個命令就是從服務器上注銷的過程 , 如果服務器收到該命令時 , 沒有文件正在傳達室輸 , 剛斷開控制 , 連接如果有文件正在傳輸 , 剛控制連接仍然保持 , 直到收到有關(guān)傳輸結(jié)果的應答時 , 服務器才斷開連接 。 8) .TYPE: 表示文件類型,共有四種,所帶參數(shù)也有四種, A, E , I , L 分別對應 ASCII, EBCDIC, IMAGB 和 LOCAL 類型 。 12) . PORT: 指明數(shù)據(jù)連接的端口號 , 帶六個參數(shù) 。 使用格式: TOUCH filename 15).PWD: 在服務器上顯示當前工作目錄。 2) .文件管理模塊 :主要完成文件的顯示、新建文件、刪除文件等。在這個過程中,我們依靠發(fā)送 —— 響應的機制。 1).客戶端與服務器連接 FTP 是建立在 TCP 之上的連接,端口號使用 21。 接著客戶端應發(fā)送密碼給服務器,如: PASS 123,密碼正確,返回如: 230 User logged in, proceed,如果用戶名或密碼認證沒有通過,返回如: 530 Not logged in。 120:服務在 nnn 分鐘內(nèi)準備好。 202:命令未實現(xiàn)。 214:幫助信息,信息僅對人類用戶有用。 225:數(shù)據(jù)連接打開,無傳輸正在進行。 250:請求的文件操作完成。 350:請求的文件操作需要進一步命令。 450:請求的文件操作未執(zhí)行。 501:參數(shù)語法錯誤。 530:未登錄。 552:請求的文件操作中止,存儲分配溢出??蛻舳顺绦虼笾铝鞒淌?,先輸入 USER 和 PASS 命令并指定用戶名要求登錄,服務器就在先檢查用戶的合法性以及密碼是否正確,如果合法及明碼正確就用 21 端口與客戶端建立連接。客戶端按照服務器規(guī)定的命令格式向服務器傳送命令。如果再發(fā) LIST 命令或其他命令執(zhí)行形式類似。 主動方式 FTP 的主要問題實際上在于客戶端。客戶端先向服務器端發(fā)送 port 命令,告訴服務器我客戶端正在監(jiān)聽的端口號,服務器收到此端口號就會主動的連接客戶端所指定的這個端口號。當開啟一個 FTP 連接時,客戶端打開兩個任意的非特權(quán)本地端口( N1024和 N+1)。 對于服務器端的防火墻來說,必須允許下面的通訊才能支持被動方式的 FTP: 1).從任何端口到服務器的 21 端口(客戶端初始化的連接 S?C) 。 對于用戶客戶端的防火墻來說被動方式算是內(nèi)網(wǎng),所以防火墻不會阻止客戶端與服務器之間的連接。 API 有: include sys/ /* See NOTES */ include sys/ int socket(int domain, int type, int protocol)。 } Socket 地址結(jié)構(gòu)體類型 Addrlen 地址結(jié)構(gòu)體類型的長度 該函數(shù)將綁定自己的 ip 地址和端口號 int listen(int sockfd, int backlog)。 連接函數(shù) 建立連接; 下面函數(shù)是真正的通過 socket 套接字接受數(shù)據(jù)函數(shù) ssize_t recv(int sockfd, void *buf, size_t len, int flags)。 下面函數(shù)是真正的通過 socket 套接字發(fā)送數(shù)據(jù)函數(shù) ssize_t send(int sockfd, const void *buf, size_t len, int flags)。 示例: include sys/ include sys/ include include include define MY_SOCK_PATH /somepath define LISTEN_BACKLOG 50 define handle_error(msg) \ do { perror(msg)。 socklen_t peer_addr_size。my_addr, 0, sizeof(struct sockaddr_un))。my_addr, sizeof(struct sockaddr_un)) == 1) handle_error(bind)。peer_addr, amp。 void FD_CLR(int fd, fd_set *set)。 用 select 輪訓來處理多個客戶端的請求。 創(chuàng)建 socket 套接字; int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen)。 Exit(1)。 }else { 父進程什么都不做; } } Return 0。 連接請求,連接服務器; ssize_t send(int sockfd, const void *buf, size_t len, int flags)。 2) 當用戶向服務器上傳文件時可能會傳輸中斷,服務器仍然存在一些不穩(wěn)定的數(shù)據(jù)連接。 2)白盒測試 在白盒測試(有時稱為 透明盒測試)中,軟件測試員可以訪誤碼程序員的代碼,并通過檢查代碼的線索來協(xié)助測試 —— 可以看到盒了里面。首先用客戶端登陸服務器,與服務器建立連接,然后上傳,下載文件,看看服務器端有什 么反應,但是有時會發(fā)現(xiàn)雖然建立了連接,但是文件傳輸有時會失敗。 以前我對 VC++了解不會很明確,但是現(xiàn)在我了解了 VC++的運行環(huán)境,使用方法,以及一些命
點擊復制文檔內(nèi)容
畢業(yè)設計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1