內(nèi)容教程案例_第1頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余1頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

在本書(shū)中一直使用一個(gè)稱為sock的小測(cè)試程序,用來(lái)生成TCP和UDP數(shù)據(jù)。它既可以用作一個(gè)客戶進(jìn)程,也可以用作一個(gè)服務(wù)器進(jìn)程。有這樣一個(gè)可以從外殼程序執(zhí)行的測(cè)試程序,使我們避免了為每一個(gè)我們想要研究的特征編寫(xiě)新的客戶和服務(wù)器C程序。因?yàn)楸緯?shū)的目的是了解網(wǎng)絡(luò)互聯(lián)協(xié)議,而不是網(wǎng)絡(luò)編程,所以在這個(gè)附錄中我們只描述這個(gè)程序和它不同的選項(xiàng)。有很多與sock功能類似的程序。JuergenNickelsen寫(xiě)了一個(gè)稱為socket的程序,DaveYost寫(xiě)了一個(gè)稱為sockio的程序。兩者都包含了很多類似的特征。sock程序的某些部分也受到了MikeMuuss和TerrySlattery所寫(xiě)的公開(kāi)域ttcp程序的啟發(fā)。 TCP連 服務(wù)據(jù)到標(biāo)準(zhǔn)輸出。如圖C-1所示。

須指明服務(wù)器主機(jī)的名字和要連接的服務(wù)名字。主機(jī)可指明為點(diǎn)分十進(jìn)制數(shù),服務(wù)可指明為一個(gè)整數(shù)端 。從sun到bsdi與標(biāo)準(zhǔn)的echo服務(wù)器(1.12節(jié))相連,回顯我們鍵入的每一個(gè)字符: %sockbsdiecho testline我們鍵入這一 echo服務(wù)器返回一個(gè)鍵入文件結(jié)束符來(lái)中交互式服務(wù)器:指明-s選項(xiàng)。需要指明服務(wù)名字(或 % - 作為一個(gè)在端口5555的服務(wù)程序等待一個(gè)客戶的連接請(qǐng)求,然后將標(biāo)準(zhǔn)輸入給客戶,將從客戶接收到的東西制到標(biāo)準(zhǔn)輸出。在命令行中,端之前可以有一個(gè)因特網(wǎng)地址,用來(lái)指明接收哪一個(gè)本地接口上的連接: % 140.252.13.3 只接受來(lái)自以太網(wǎng)的連源客戶:指明-i選項(xiàng)。在默認(rèn)情況下,將一個(gè)1024字節(jié)的緩存寫(xiě)到網(wǎng)絡(luò)中,寫(xiě) % - - -w discardis選項(xiàng)。從網(wǎng)絡(luò)中讀數(shù)據(jù)然后扔掉。這些例子都使用了TCP(默認(rèn)情況)u選項(xiàng)指明使用UDP。附錄附錄Csock程 時(shí)的端。c 將從標(biāo)準(zhǔn)輸入讀入的新行字符轉(zhuǎn)換為一個(gè)回車符和一個(gè)換行符。類似地,當(dāng)從網(wǎng)絡(luò)中讀數(shù)據(jù)時(shí),將〈回車,換行〉序列轉(zhuǎn)換為新行字符。很多因特網(wǎng)應(yīng)用需要TCII26.節(jié) 為一個(gè)UDP端點(diǎn)指明遠(yuǎn)端的IP地址(a.b.c.d)和遠(yuǎn)端的端 h 實(shí)現(xiàn)P的半關(guān)閉機(jī)制( 185節(jié)。即,當(dāng)在標(biāo)準(zhǔn)輸入中讀到一個(gè)文件結(jié)束符并不止。是在TCP連接上發(fā)送一個(gè)半關(guān)閉報(bào)文,繼續(xù)從網(wǎng)中報(bào)直對(duì)閉接。 源客戶或服務(wù)器。向網(wǎng)絡(luò)寫(xiě)數(shù)據(jù)(默認(rèn)),或者如果和-s選項(xiàng)n起用,從網(wǎng)絡(luò)讀數(shù)據(jù)。-n選項(xiàng)可以指明寫(xiě)(或讀)的緩存的數(shù)目,-當(dāng)和-i選項(xiàng)一起使用時(shí),n指明了讀或?qū)懙木彺娴臄?shù)目。nn1024 n收器服務(wù)器(-is)一起使用作為每次對(duì)網(wǎng)絡(luò)讀寫(xiě)時(shí)的延遲。參考-P選為TCP服務(wù)器指明掛起的連接隊(duì)列的大?。篢CPn經(jīng)接受的連接的數(shù)目(圖18-23。默認(rèn)值是5和-is選項(xiàng)一起使用,n使用UDP,而不是TCP詳細(xì)模式。在標(biāo)準(zhǔn)差錯(cuò)上打印附加的細(xì)節(jié)信息(如客戶和服務(wù)器的臨時(shí)端。n和-i選項(xiàng)一起使用,n指明每次從網(wǎng)絡(luò)中寫(xiě)數(shù)據(jù)的大小。默認(rèn)值是每次使能SO_REUSEADDR插口選項(xiàng)。對(duì)于TCP,這個(gè)選項(xiàng)允許進(jìn)程給自己分配一個(gè)處于2MSL等待的連接的端。對(duì)于UDP,這個(gè)選項(xiàng)支持使能SO_BROADCAST插口選項(xiàng),允許向一個(gè)廣播IP地址發(fā)送UDP使能SO_DEBUG插口選項(xiàng)。這個(gè)選項(xiàng)使得內(nèi)核為這個(gè)TCP連接外的調(diào)試信息 A.6節(jié)。以后可以運(yùn)行trpt(8)程序輸出這個(gè)信息 如果實(shí)現(xiàn)支持,使能IP_RECVDSTADDR插口選項(xiàng)。這個(gè)選項(xiàng)用于TCP/IP詳解卷1UDP服務(wù)器,用來(lái)打印接收到的UDP數(shù)據(jù)報(bào)的目的IP地址。F 指明一個(gè)并發(fā)的TCP服務(wù)器。即,服務(wù)器使用fork函數(shù)為每一個(gè)客戶連 使能TCP的SO_KEEPALIVE插口選項(xiàng)(第23章-Ln 把一個(gè)TCP端點(diǎn)的拖延時(shí)間(lingertime)(SO_LINGER)設(shè)置為n個(gè)為0的拖延時(shí)間意味著當(dāng)網(wǎng)絡(luò)連接關(guān)閉時(shí),正在排隊(duì)等著發(fā)送的任何數(shù)據(jù)都被丟棄,向?qū)Ψ桨l(fā)送一個(gè)重置報(bào)文(18.7節(jié)。一個(gè)正的拖延時(shí)間(百分之一秒)是關(guān)閉網(wǎng)絡(luò)連接必須等待的將所有正在排隊(duì)等著發(fā)送的數(shù)據(jù)發(fā)送完并收到確認(rèn)的時(shí)間。關(guān)閉網(wǎng)絡(luò)連接時(shí),如果這個(gè)拖延定時(shí)器超時(shí),掛起的數(shù)據(jù)沒(méi)有全部發(fā)送完并收到確認(rèn),關(guān)閉操作將返回一個(gè)差錯(cuò)信息。 設(shè)置TCP_NODELAY插口選項(xiàng)來(lái)Nagle算法(19.4節(jié)-O 指明一個(gè)TCP服務(wù)器在接受第一個(gè)客戶連接之前暫停的秒數(shù)。-Pn 指明在第一次對(duì)網(wǎng)絡(luò)進(jìn)行讀或?qū)懼皶和5拿霐?shù)。這個(gè)選項(xiàng)可以和接收器服務(wù)器(-is)一起使用,完成在接受了客戶的連接請(qǐng)求之后但在執(zhí)行從網(wǎng)絡(luò)中第一次讀之前的延遲。和接收源(-i)一起使用時(shí),完成連接建立之后但第一次向網(wǎng)絡(luò)寫(xiě)之前的延遲。參看-p選項(xiàng),實(shí)現(xiàn)在接下來(lái)的每一次讀或?qū)懼g進(jìn)行暫停。-Qn 指明當(dāng)一個(gè)TCP客戶或服務(wù)器收到了另一端發(fā)來(lái)的一個(gè)文件結(jié)束符,-Rn 把插口的接收緩存(SO_RCVBUF插口選項(xiàng))設(shè)置為n。這可以直接影響TCP通告的

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論