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

正文內(nèi)容

簡易代理服務(wù)器的設(shè)計—免費計算機畢業(yè)設(shè)計論文-文庫吧資料

2024-12-09 16:30本頁面
  

【正文】 由于客戶端在連接時,都會和代理服務(wù)器連接,發(fā)出請求,一般為 mand url(//GET == GET / )形式 ,定義buf用于存儲接收到的請求字符串 。 第 12 頁 共 20頁 下面的一步,需要把這些數(shù)據(jù)信息傳給 Server。 closesocket()。 =TRUE。 if(retval==SOCKET_ERROR) { printf(\nError Receive)。 retval=recv(,Buffer,sizeof(Buffer),0)。 =TRUE。 如果此客戶端到代理服務(wù)器的連接正確,我們就在這一 socket 連接上使用revc 函數(shù)接收數(shù)據(jù)。 AfxBeginThread(ClientToProxy,pParam)。fromlen)。 msg_socket=accept(listen_socket,(struct sockaddr*)amp。 請求處理過程 在這一步設(shè)計函數(shù) ClientToProxy 來處理收到客戶請求,并將請求合理傳送至 Server(客戶請求的數(shù)據(jù)服務(wù)器 )。 return 3。local,sizeof(local))!=0) { printf(\n Error in Binding socket.)。 再用 listen_socket=socket(AF_INET,SOCK_STREAM,0)語句 打開 socket 描述符 。 =htons(port)。 =INADDR_ANY。 =AF_INET。 sockaddr_in local。 } 之后,創(chuàng)建一個代理服務(wù)器( Proxy)用于網(wǎng)絡(luò)通信的套接字 listen_socket。 WSACleanup()。 if(::WSAStartup(0x202,amp。 第 10 頁 共 20頁 啟動代理服務(wù)器 這里,在運用套接字編程中由于 Winsock在被調(diào)用時是動態(tài)鏈接庫 Winsock DLL 形式實現(xiàn)的,首先需調(diào)用 WSAStartup()函數(shù)對 Winsock DLL 進行初始化,它的第一個參數(shù)指定要加載的 Winsock 庫的版本,高字節(jié)為次版本號,低字節(jié)為主版本號;第二個參數(shù)是用來返回 DLL 庫的詳細信息,是指向 WSADATA 結(jié)構(gòu)的指針。 圖 4 Library files設(shè)置 功 能實現(xiàn) 數(shù)據(jù)變量定義 定義代表 協(xié)議 的 變量 HTTP, 定義緩 沖區(qū)大小變量MAXBUFFERSIZE。剛開始時運行 VC++ 開發(fā)工具,單擊菜單“ Tools/Options...” ,彈出 Options對話框,選擇 Directories 選項卡,首先在 “ Show directories for:” 下拉菜單中選擇 Include files,將 SDK 中頭文件的目錄添 加到:“ Directories:”列 表中,如圖 3 所示: 第 9 頁 共 20頁 圖 3 Include files設(shè)置 然后在 “ Show directories for:” 下拉菜單中選擇 Library files,進行同樣的設(shè)置,如圖 4 所示。因此,對于每一個請求,我們將用一個線程處理數(shù)據(jù)的接收和發(fā)送,同時在數(shù)據(jù)到達代理服務(wù)器時,盡可能快速地把它轉(zhuǎn)發(fā)出去 。例如,如果要在數(shù)據(jù)進入的時候進行過濾,這些數(shù)據(jù)最好按行讀??;然而,大多數(shù)時候,當(dāng)數(shù)據(jù)到達代理服務(wù)器時,立即把它轉(zhuǎn)發(fā)出去更適合高效這一要求。實際上,這里主要有兩個問題要考慮:第一,從 Socket 按行讀取數(shù)據(jù)最適合進一步處理,但這會產(chǎn)生性能瓶頸;第二,兩個 Socket 之間的連接必需高效。 多線程流程 由于 代理服務(wù)器 和大多數(shù)服務(wù)器一樣,如果要處理多個請求,它應(yīng)該使用多線程。如果用戶輸入一個數(shù),而且指定使用這一端口號,則應(yīng)用程序必須在使用它建立地址以前,把它從主機順序轉(zhuǎn)換網(wǎng)絡(luò)順序(使用 htons()函數(shù))。 另外,任何 Windows Socket函數(shù)對 IP地址和端口號的引用和傳送給 Windows Sockets 函數(shù)的 IP 地址和端 口號均是按照網(wǎng)絡(luò)順序組織的,這也包括了sockaddr_in 結(jié)構(gòu)這一數(shù)據(jù)類型中的 IP 地址域和端口域 (但不包括 sin_family域 )。在處理數(shù)據(jù)請求的過程中,我們必須知道 Server 的地址,這是非常重要的。其中, ClientToProxy 用于實現(xiàn) 收取 Client 數(shù)據(jù)請求并 傳給Server。 Flags 參數(shù)在這兩函數(shù)中通常設(shè)為 0。 Send 函數(shù)在一個連接的套接字上發(fā)送緩沖區(qū)內(nèi)的數(shù)據(jù),返回發(fā)送數(shù)據(jù)的實際字節(jié)數(shù)。之后,服務(wù)端就會調(diào)用 accept(),而在 調(diào) 用 accept ()的參數(shù)前應(yīng)該先調(diào)用過 listen(),Accept 函數(shù)定義如下: SOCKET accept(SOCKET soc, struct sockaddr * addr, int * addrlen)。在同一時間處理多個連接請求的服務(wù)器通常使用 listen 函數(shù),如果一個連接請求到達并且排隊也滿,客戶端將接收錯誤。 Listen 函數(shù) 僅應(yīng)用在支持連接的套接字上,如 SOCK_STREAM 類型。 設(shè)置監(jiān)聽狀態(tài) listen() Listen 函數(shù)設(shè)置套接字進入監(jiān)聽狀態(tài)。注意:地址在建立套接字通 信過程中起著重要作用, 程序使用中通??刻畛鋝ockaddr_in 結(jié)構(gòu)來綁定套接字到本地地址。 當(dāng)然,客戶端程序也可以在不顯示綁定地址和端口號的情況下發(fā)送數(shù)據(jù)或者連接。它用在沒有建立連接的套接字上, 如果沒有錯誤發(fā)生, bind()返回 0。 指定本地地址- bind() 當(dāng)一個套接字用 socket()創(chuàng)建后,存在一個名字空間 (地址族 ),但它沒有被命名。 系統(tǒng)基本套接字調(diào)用 創(chuàng)建和關(guān)閉套接字- socket()和 closesocket() 應(yīng)用程序在使用套接字前,首先必須擁有一個套接字,系統(tǒng)調(diào)用 socket()向應(yīng)用程序提供創(chuàng)建套接字的手段 ,如果成功將返回套接字句柄,如果創(chuàng)建失敗,返回 INVALID_SOCKET(即 1)。這 API 數(shù)據(jù)都是平臺無關(guān)的。 第 6 頁 共 20頁 字節(jié)順序 字節(jié)順序是長度跨越多個字節(jié)的數(shù)據(jù)被存儲的順序,分為小尾順序和大尾順序, TCP/IP 統(tǒng)一規(guī)定使用大尾順序方式傳輸數(shù)據(jù),即網(wǎng)絡(luò)字節(jié)順序 ,它的字節(jié)順序是最重要的字節(jié)首先存儲 。 i_ntoa 函數(shù)將一個網(wǎng)絡(luò)字節(jié)順序的 32 位 IP 地址轉(zhuǎn)化字符串。 }。 struct in_addr sin_addr。定義如下: Struct sockaddr_in{ short sin_family。如果Winsock 強迫使 用特定的尋址方式,添加其他協(xié)議就不大可能了。 winsock 的尋址方式 因為 Winsock 要兼容多個協(xié)議,所以必須使用通用的尋址方式。如果沒有加載,將返回 SOCKET_ERROR,加載的函數(shù)是 WSAStartup,其定義如下: int WSAStartup(WORD wVersionRequested,LPWSADATA lpWSAData)。 Winsock庫 Winsock 是 Windows 下網(wǎng)絡(luò)編程的標(biāo)準(zhǔn)接口,它允許兩個或多個應(yīng)用程序在相同機器上,或者是通過網(wǎng)絡(luò)相互交流。此時客戶端使用socket 函數(shù)創(chuàng)建的套接字,服務(wù)器端使用 accept 函數(shù)創(chuàng)建的套接字,雙方就可以通信了。 客戶端創(chuàng)建套接字后即可調(diào)用 connect 函數(shù)去試圖連接服務(wù)器監(jiān)聽套接字。首先服務(wù)器端創(chuàng)建監(jiān)聽套接字,并為它關(guān)聯(lián)一個本地地址(指定 IP地址和端口號),然后進入監(jiān)聽狀態(tài)準(zhǔn)備接收客戶端的連接請求。這時,服務(wù)器程序被“喚醒”,并開始響應(yīng)客戶機提出的連接請求。而當(dāng)需要確保數(shù)據(jù)準(zhǔn)確無誤地到達時,則應(yīng)采用面向連接的傳輸方式。 例如有 軟件: WinRoute,Sygate。這樣,通過在內(nèi)部使用非注冊的 IP 地址,并將它們轉(zhuǎn)換為一小部 第 4 頁 共 20頁 分外部注冊的 IP 地址,從而減少了 IP 地址注冊的費用。 NAT 方式也稱之為 Inter 的路由連接。例如有 軟件: Wingate, Winproxy 等。有了網(wǎng)絡(luò)地址轉(zhuǎn)換器,家庭網(wǎng)絡(luò)或小型的辦公網(wǎng)絡(luò)中的電腦就可以使用私有地址,并且通過網(wǎng)絡(luò)地址轉(zhuǎn)換器將私有地址轉(zhuǎn)換成 ISP 分配的單一的公用 IP 地址從而實現(xiàn)對 Inter 的連接。 ICS 即 Inter 連接共享( Inter Connection Sharing)的英文簡稱,是 Windows 系統(tǒng)針對家庭網(wǎng)絡(luò)或小型的 Intra 網(wǎng)絡(luò)提供的一種 Inter 連接共享服務(wù)。只有從數(shù)據(jù)中才能看到。 在內(nèi)網(wǎng)中,出現(xiàn)的 IP 數(shù)據(jù),全是內(nèi)網(wǎng)和代理服務(wù)器的IP。機器 和代理服務(wù)器通訊時,目的 IP 是代理服務(wù)器的 IP。當(dāng)機器通過代理服務(wù)器上網(wǎng)時。 代理服務(wù)器有許多種,大體來說有 HTTP,FTP,SOCKS 代理 三種,其中又分透明代理和不透明代理。而當(dāng)我們使用相應(yīng)協(xié)議的代理服務(wù)器后,就可以達到隱藏自己當(dāng)前所在地地址的目的了 。例如,大家在一些論壇上看到,論壇中明確標(biāo)出了發(fā)帖用戶目前所在地,這就是根據(jù)論壇會員登錄時的 IP 地址解析的。 第 3 頁 共 20頁 防止攻擊 : 隱藏自己的真實地址信息,還可隱藏自己的 IP,防止被黑客攻擊。 提高訪問速度:本身帶寬較小,通過帶寬較大的 proxy 與目標(biāo)主機連接。這樣,局域局內(nèi)沒有與外網(wǎng)相連的眾多機器就可以通過內(nèi)網(wǎng)的一臺代理服務(wù)器連接到外網(wǎng),大大減少費用。主要的功能有: 連接 Inter 與 Intra 充當(dāng)防火墻:因為所有內(nèi)部網(wǎng)的用戶通過代理服務(wù)器訪問外界時,只映射為一個 IP地址,所以外界不 能直接訪問到內(nèi)部網(wǎng);同時可以設(shè)置 IP地址過濾,限制內(nèi)部網(wǎng)對外部的訪問權(quán)限;另外,兩個沒有互聯(lián)的內(nèi)部網(wǎng),也可以通過第三方的代理服務(wù)器進行互聯(lián)來交換信息。而且,大部分代理服務(wù)器都具有緩沖的功能,就好 像 一個大的 Cache,它有很大的存儲空間,它不斷將新 取得數(shù)據(jù)儲存到它本機的存儲器上,如果瀏覽器所請求的數(shù)據(jù)在它本機的存儲器上已經(jīng)存在而且是最新的,那么它就不重新從 Web服務(wù)器取數(shù)據(jù),而直接將存儲器上的數(shù)據(jù)傳送給用戶的瀏覽器,這樣就能顯著提高瀏覽速度和效率 。 在一般情況下,我們使用網(wǎng)絡(luò)瀏覽器直接去連接其他 Inter 站點取得網(wǎng)絡(luò)信息時,須送出Request 信號來得到回答,然后對方再把信息以 bit 方式傳送回來。形象的說:它是網(wǎng)絡(luò)信息的中轉(zhuǎn)站。 使用 這兩個 Socket 類 , 我們可以 運 用面向?qū)ο蟮姆椒▉磉M行 Socket 編程,而且它們還分別在較低和較高層次上封裝了 Windows Sockets API,為程序員開發(fā) Socket 程序提供了便利。還將運用 Windows 下網(wǎng)絡(luò)編程的標(biāo)準(zhǔn)接口 WinSock , 因為它允許兩個或多個應(yīng)用程序在相同機器上,或者是通過網(wǎng)絡(luò)相互交流,它是真正協(xié)議無關(guān)的接口。 本課題的研究方法 此 代理 服務(wù)器 系統(tǒng) 將是 建立在 Windows NT 平臺上 的網(wǎng)絡(luò)應(yīng)用程序設(shè)計。 除了上面的因素外,通過一個簡單的代理程序的開發(fā),我們能從實現(xiàn)過程中學(xué)習(xí)到網(wǎng)絡(luò)通信和網(wǎng)絡(luò)編程的基礎(chǔ)知識,加深理解和掌握我們所使用的開發(fā)語言。目前市場上流行的 代理 服務(wù)器,像 Microsoft Proxy Server、 Netscape Proxy Server、 Win Gate 等 國外的產(chǎn)品, 功能和性能等方面都還不錯, 我們正好可以通過借鑒它們產(chǎn)品的優(yōu)點 , 開發(fā)一個具有自主產(chǎn)權(quán)的代理服務(wù)器產(chǎn)品。在 代理 服務(wù)器的眾多功能中,安全性是一個突出且敏感的功能。 本課題研究的意義 隨著 Inter 與 Intra 的飛速發(fā)展,作為連接 Inter 與 Intra的橋梁, 代理 服務(wù)器在實際應(yīng)用中發(fā)揮著極其重要的作用。代理服務(wù)器從提出到現(xiàn)在,不斷的經(jīng)歷著內(nèi)容 更進和技術(shù)的革新,各種代理服務(wù)器產(chǎn)品更是層出不窮。即對于內(nèi)部網(wǎng)上的用戶來說,代理服務(wù)器可看作是一個外部網(wǎng)的代理;對于外部網(wǎng)絡(luò)來說,代理服務(wù)器可以看作一個要訪問外部網(wǎng)的客戶。s basic function are guaranteed, it use the multithreading to enable the proxy server to have a better continuous feature. This proxy system has the merit such as simple, easy to use and so on, and it can plete the proxy of general HTTP visit. Key words: Client / Server architecture; Multithreading; Socket; Proxy Server 目 錄 論文總頁數(shù): 20頁 1 引言 .....................................................................................................................
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1