第八講循環(huán)服務(wù)器_第1頁
第八講循環(huán)服務(wù)器_第2頁
第八講循環(huán)服務(wù)器_第3頁
第八講循環(huán)服務(wù)器_第4頁
第八講循環(huán)服務(wù)器_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

《計(jì)算機(jī)網(wǎng)絡(luò)編程》第八講循環(huán)服務(wù)器電子科技大學(xué)計(jì)算機(jī)學(xué)院循環(huán)服務(wù)器概述循環(huán)的無連接的服務(wù)器:Time服務(wù)器實(shí)例循環(huán)的面向連接的服務(wù)器:Daytime服務(wù)器實(shí)例目錄計(jì)算機(jī)網(wǎng)絡(luò)編程電子科大計(jì)算機(jī)學(xué)院循環(huán)服務(wù)器的類型循環(huán)無連接服務(wù)器使用無連接的循環(huán)服務(wù)器,采用算法8.2TIME服務(wù)的例子循環(huán)面向連接的服務(wù)器循環(huán)的面向連接的服務(wù)器,采用算法8.1DAYTIME服務(wù)的例子特點(diǎn):每次處理時(shí)間都很少服務(wù)器實(shí)現(xiàn)簡(jiǎn)單計(jì)算機(jī)網(wǎng)絡(luò)編程電子科大計(jì)算機(jī)學(xué)院1.循環(huán)服務(wù)器概述創(chuàng)建一個(gè)過程隱藏創(chuàng)建一個(gè)被動(dòng)套接字的細(xì)節(jié)passiveUDP:本章學(xué)習(xí),使用無連接的被動(dòng)套接字passiveTCP:使用面向連接的被動(dòng)套接字獲得熟知的端口號(hào),端口號(hào)的唯一性問題。使用什么協(xié)議綁定IP地址使用全局變量portbase的優(yōu)點(diǎn)安全性:不修改程序中引用端口的地方導(dǎo)致少發(fā)生錯(cuò)誤通用性:允許測(cè)試的時(shí)候,多個(gè)服務(wù)器版本共存運(yùn)行,portbase的值不一樣,測(cè)試版本的端口不會(huì)沖突計(jì)算機(jī)網(wǎng)絡(luò)編程電子科大計(jì)算機(jī)學(xué)院創(chuàng)建被動(dòng)的套接字passiveUDP調(diào)用passivesock實(shí)現(xiàn)passiveTCP調(diào)用passivesock實(shí)現(xiàn)passivesock三個(gè)參數(shù)第一個(gè)服務(wù)名,第二個(gè)協(xié)議名,第三個(gè)參數(shù)指明連接請(qǐng)求隊(duì)列所需要的長(zhǎng)度(只用于TCP套接字)使用INADDR_ANY代替特定的本地IP地址getservbyname,getprotobyname,strcmp,memset,socket,bind,listen…分析passivesock.c計(jì)算機(jī)網(wǎng)絡(luò)編程電子科大計(jì)算機(jī)學(xué)院創(chuàng)建被動(dòng)的套接字循環(huán)的無連接的服務(wù)器進(jìn)程結(jié)構(gòu)只需要一個(gè)執(zhí)行線程計(jì)算機(jī)網(wǎng)絡(luò)編程電子科大計(jì)算機(jī)學(xué)院2.循環(huán)無連接服務(wù)器(算法8.2)用于所有通信的熟知套接字端口服務(wù)器操作系統(tǒng)服務(wù)器應(yīng)用進(jìn)程客戶使用TIME服務(wù)從另一個(gè)系統(tǒng)得到當(dāng)前時(shí)間(前面已經(jīng)討論過)TIME服務(wù)幾乎不需要什么計(jì)算UDPtimed.cpage91頭文件include宏定義,變量定義,函數(shù)聲明main函數(shù)參數(shù)分析調(diào)用passiveUDPrecvfrom,sendto循環(huán)計(jì)算機(jī)網(wǎng)絡(luò)編程電子科大計(jì)算機(jī)學(xué)院TIME服務(wù)器舉例(注意與算法8.2對(duì)應(yīng))使用這個(gè)服務(wù)器的原因簡(jiǎn)單服務(wù)服務(wù)器為每個(gè)請(qǐng)求的計(jì)算很少循環(huán)服務(wù)器是個(gè)簡(jiǎn)單的服務(wù)器建立被動(dòng)的套接字的過程TIME服務(wù)獲得系統(tǒng)時(shí)間服務(wù)使用UDP訪問編程方法計(jì)算機(jī)網(wǎng)絡(luò)編程電子科大計(jì)算機(jī)學(xué)院循環(huán)無連接服務(wù)器小結(jié)分配被動(dòng)的TCP套接字調(diào)用passiveTCP實(shí)現(xiàn)帶有兩個(gè)參數(shù)第一個(gè)是字符串:服務(wù)的名字或者端口號(hào)第二個(gè):傳入連接的請(qǐng)求隊(duì)列所需的長(zhǎng)度計(jì)算機(jī)網(wǎng)絡(luò)編程電子科大計(jì)算機(jī)學(xué)院3.循環(huán)的面向連接的服務(wù)器(算法8.1)DAYTIME服務(wù):從另外機(jī)器上獲得當(dāng)前的日期和時(shí)間(前面第7章已經(jīng)談過)DAYTIME服務(wù)器不需要優(yōu)化速率獲取和格式化日期要求很少的處理用戶對(duì)此服務(wù)的需求很少循環(huán)實(shí)現(xiàn)就足夠了服務(wù)器忙的時(shí)候,其他的請(qǐng)求可以排隊(duì)計(jì)算機(jī)網(wǎng)絡(luò)編程電子科大計(jì)算機(jī)學(xué)院用于DAYTIME服務(wù)的服務(wù)器使用一個(gè)單執(zhí)行線程使用兩個(gè)套接字一個(gè)套接字處理請(qǐng)求另外一個(gè)套接字處理和客戶的通信(臨時(shí)的)計(jì)算機(jī)網(wǎng)絡(luò)編程電子科大計(jì)算機(jī)學(xué)院進(jìn)程的結(jié)構(gòu)用于連接請(qǐng)求的套接字服務(wù)器操作系統(tǒng)服務(wù)器應(yīng)用進(jìn)程用于單個(gè)連接的套接字TCPdaytimed.cpage96passiveTCP隱藏了很多套接字分配和綁定的細(xì)節(jié)QLEN:客戶連接請(qǐng)求等待隊(duì)列長(zhǎng)度在循環(huán)中,使用accept從主套接字得到一個(gè)連接(accept完成三次握手過程)對(duì)于新的連接服務(wù)器調(diào)用過程TCPdaytimed進(jìn)行處理處理完畢繼續(xù)循環(huán),再次調(diào)用accept阻塞計(jì)算機(jī)網(wǎng)絡(luò)編程電子科大計(jì)算機(jī)學(xué)院DAYTIME服務(wù)器例子調(diào)用TCPdaytimed返回后,主程序關(guān)閉該連接的套接字調(diào)用close是從容關(guān)閉:TCP保證所有的數(shù)據(jù)可靠交付給客戶(連接終止前收到確認(rèn))close不能立刻返回,調(diào)用將會(huì)阻塞,直到收到客戶的確認(rèn)計(jì)算機(jī)網(wǎng)絡(luò)編程電子科大計(jì)算機(jī)學(xué)院關(guān)閉連接連接終止問題DAYTIME服務(wù)器知道何時(shí)應(yīng)該終止連接復(fù)雜客戶服務(wù)器系統(tǒng)的應(yīng)用,必須了解客戶什么時(shí)候是最后一個(gè)請(qǐng)求,客戶必須發(fā)送一個(gè)完成的信號(hào)允許客戶控制連接時(shí)間有危險(xiǎn)誤操作的客戶可能導(dǎo)致服務(wù)器消耗掉套接字和TCP連接相關(guān)的資源客戶快速的重復(fù)的發(fā)出請(qǐng)求,可以把服務(wù)器的資源用光計(jì)算機(jī)網(wǎng)絡(luò)編程電子科大計(jì)算機(jī)學(xué)院連接終止和服務(wù)器的脆弱性循環(huán)的面向連接的服務(wù)器每處理一個(gè)連接循環(huán)一次連接達(dá)到以前在accept阻塞建立新的連接以后創(chuàng)建新套接字處理處理完畢,關(guān)閉,返回accept阻塞DAYTIME服務(wù)不需要客戶的請(qǐng)求信息,檢測(cè)到連接就響應(yīng)發(fā)送完響應(yīng),服務(wù)器主動(dòng)關(guān)閉連接每個(gè)連接只發(fā)送一

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論