八、網(wǎng)絡(luò)編程_第1頁
八、網(wǎng)絡(luò)編程_第2頁
八、網(wǎng)絡(luò)編程_第3頁
八、網(wǎng)絡(luò)編程_第4頁
八、網(wǎng)絡(luò)編程_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、contentsLinux網(wǎng)絡(luò)概述網(wǎng)絡(luò)概述Linux網(wǎng)絡(luò)編程基礎(chǔ)網(wǎng)絡(luò)編程基礎(chǔ)TCP網(wǎng)絡(luò)程序設(shè)計(jì)網(wǎng)絡(luò)程序設(shè)計(jì)UDP網(wǎng)絡(luò)程序設(shè)計(jì)網(wǎng)絡(luò)程序設(shè)計(jì)Linux并發(fā)服務(wù)器設(shè)計(jì)并發(fā)服務(wù)器設(shè)計(jì)Linux網(wǎng)絡(luò)優(yōu)勢網(wǎng)絡(luò)優(yōu)勢Linux為用戶提供了完善的、強(qiáng)大的網(wǎng)絡(luò)功能為用戶提供了完善的、強(qiáng)大的網(wǎng)絡(luò)功能1、完善的內(nèi)置網(wǎng)絡(luò)完善的內(nèi)置網(wǎng)絡(luò)。其他操作系統(tǒng)不包含如此。其他操作系統(tǒng)不包含如此緊密地和內(nèi)核結(jié)合在一起的網(wǎng)絡(luò)部分緊密地和內(nèi)核結(jié)合在一起的網(wǎng)絡(luò)部分2、Linux免費(fèi)提供了免費(fèi)提供了大量支持大量支持Internet的軟件的軟件,Internet是在是在Unix領(lǐng)域中建立并繁榮起來的,在領(lǐng)域中建立并繁榮起來的,在這方面使用這方

2、面使用Linux是相當(dāng)方便的,用戶能用是相當(dāng)方便的,用戶能用Linux與世界上的其他人通過與世界上的其他人通過Internet網(wǎng)絡(luò)進(jìn)行通信網(wǎng)絡(luò)進(jìn)行通信3、用戶能通過一些、用戶能通過一些Linux命令命令完成內(nèi)部信息或文完成內(nèi)部信息或文件的傳輸件的傳輸Linux網(wǎng)絡(luò)優(yōu)勢網(wǎng)絡(luò)優(yōu)勢4、遠(yuǎn)程訪問遠(yuǎn)程訪問。Linux不僅允許進(jìn)行文件和程序的不僅允許進(jìn)行文件和程序的傳輸,它還為系統(tǒng)管理員和技術(shù)人員提供了訪問傳輸,它還為系統(tǒng)管理員和技術(shù)人員提供了訪問其他系統(tǒng)的窗口。通過這種遠(yuǎn)程訪問的功能,一其他系統(tǒng)的窗口。通過這種遠(yuǎn)程訪問的功能,一位技術(shù)人員能夠有效的為多個系統(tǒng)服務(wù),即使那位技術(shù)人員能夠有效的為多個系統(tǒng)服務(wù)

3、,即使那位系統(tǒng)位于相距很遠(yuǎn)的地方位系統(tǒng)位于相距很遠(yuǎn)的地方5、安全可靠安全可靠。Linux采取了許多安全技術(shù)措施,采取了許多安全技術(shù)措施,包括對讀、寫進(jìn)行權(quán)限控制、帶保護(hù)的子系統(tǒng)、包括對讀、寫進(jìn)行權(quán)限控制、帶保護(hù)的子系統(tǒng)、審計(jì)跟蹤、核心授權(quán)等,這為網(wǎng)絡(luò)多用戶環(huán)境中審計(jì)跟蹤、核心授權(quán)等,這為網(wǎng)絡(luò)多用戶環(huán)境中的用戶提供了必要的安全保障的用戶提供了必要的安全保障Linux網(wǎng)絡(luò)模型網(wǎng)絡(luò)模型OSI參考模型與參考模型與TCP/IP參考模型參考模型網(wǎng)絡(luò)層協(xié)議網(wǎng)絡(luò)層協(xié)議主要包括主要包括Internet協(xié)議(協(xié)議(IP)、網(wǎng)際控制報(bào)文協(xié))、網(wǎng)際控制報(bào)文協(xié)議(議(ICMP)和地址解析協(xié)議()和地址解析協(xié)議(ARP)

4、:):internet協(xié)議(協(xié)議(IP)該協(xié)議被設(shè)計(jì)成互聯(lián)分組交換通信網(wǎng),以形成一該協(xié)議被設(shè)計(jì)成互聯(lián)分組交換通信網(wǎng),以形成一個國際通信環(huán)境。它負(fù)責(zé)在源主機(jī)和目的地主機(jī)個國際通信環(huán)境。它負(fù)責(zé)在源主機(jī)和目的地主機(jī)之間傳輸來自其較高層軟件的稱為數(shù)據(jù)報(bào)文的數(shù)之間傳輸來自其較高層軟件的稱為數(shù)據(jù)報(bào)文的數(shù)據(jù)塊,它在源和目的地之間提供非連接型傳遞服據(jù)塊,它在源和目的地之間提供非連接型傳遞服務(wù)。務(wù)。網(wǎng)絡(luò)層協(xié)議網(wǎng)絡(luò)層協(xié)議網(wǎng)際控制報(bào)文協(xié)議(網(wǎng)際控制報(bào)文協(xié)議(ICMP)實(shí)際上不是實(shí)際上不是IP層部分,但直接同層部分,但直接同IP層一起工作,層一起工作,報(bào)告網(wǎng)絡(luò)上的某些出錯情況。允許網(wǎng)絡(luò)路由器傳報(bào)告網(wǎng)絡(luò)上的某些出錯情況

5、。允許網(wǎng)絡(luò)路由器傳輸差錯信息或測試報(bào)文輸差錯信息或測試報(bào)文地址解析協(xié)議(地址解析協(xié)議(ARP)ARP處于處于IP和數(shù)據(jù)層之間,他是在和數(shù)據(jù)層之間,他是在32位位IP地址和地址和48位物理地址之間翻譯的協(xié)議位物理地址之間翻譯的協(xié)議傳輸層協(xié)議傳輸層協(xié)議傳輸層協(xié)議包括傳輸控制協(xié)議和用戶數(shù)據(jù)報(bào)文協(xié)傳輸層協(xié)議包括傳輸控制協(xié)議和用戶數(shù)據(jù)報(bào)文協(xié)議議傳輸控制協(xié)議(傳輸控制協(xié)議(TCP)該協(xié)議對建立網(wǎng)絡(luò)上用戶進(jìn)程之間的對話負(fù)責(zé),該協(xié)議對建立網(wǎng)絡(luò)上用戶進(jìn)程之間的對話負(fù)責(zé),它確保進(jìn)程之間的可靠通信,提供如下功能它確保進(jìn)程之間的可靠通信,提供如下功能1、監(jiān)聽輸入對話建立請求、監(jiān)聽輸入對話建立請求2、請求另一個網(wǎng)絡(luò)站點(diǎn)

6、對話、請求另一個網(wǎng)絡(luò)站點(diǎn)對話3、可靠的發(fā)送和接收數(shù)據(jù)、可靠的發(fā)送和接收數(shù)據(jù)4、適度的關(guān)閉對話、適度的關(guān)閉對話傳輸層協(xié)議傳輸層協(xié)議用戶數(shù)據(jù)報(bào)文協(xié)議(用戶數(shù)據(jù)報(bào)文協(xié)議(UDP)UDP提供提供不可靠的非連接型不可靠的非連接型傳輸層服務(wù),它允許傳輸層服務(wù),它允許在源和目的地之間傳送數(shù)據(jù),而不必在傳送數(shù)據(jù)在源和目的地之間傳送數(shù)據(jù),而不必在傳送數(shù)據(jù)之前建立對話。它只要用于哪些非連接型的應(yīng)用之前建立對話。它只要用于哪些非連接型的應(yīng)用程序,如:網(wǎng)絡(luò)聊天工具程序,如:網(wǎng)絡(luò)聊天工具應(yīng)用層協(xié)議應(yīng)用層協(xié)議包括包括telnet,文件傳送協(xié)議(,文件傳送協(xié)議(FTP和和TFTP),簡),簡單郵件傳輸協(xié)議(單郵件傳輸協(xié)議(

7、SMTP),超文本傳送協(xié)議),超文本傳送協(xié)議(HTTP)和域名服務(wù)()和域名服務(wù)(DNS)等協(xié)議)等協(xié)議數(shù)據(jù)封裝數(shù)據(jù)封裝以太網(wǎng)包以太網(wǎng)包IP協(xié)議協(xié)議四個主要功能四個主要功能:數(shù)據(jù)傳送、尋址、路由選擇、數(shù)據(jù)數(shù)據(jù)傳送、尋址、路由選擇、數(shù)據(jù)報(bào)文的分段報(bào)文的分段IP的主要目的是為數(shù)據(jù)輸入的主要目的是為數(shù)據(jù)輸入/輸出網(wǎng)絡(luò)提供基本算輸出網(wǎng)絡(luò)提供基本算法,為高層協(xié)議提供無連接的傳送服務(wù)。這意味法,為高層協(xié)議提供無連接的傳送服務(wù)。這意味著在著在IP將數(shù)據(jù)遞交給接收站點(diǎn)以前不在傳輸站點(diǎn)將數(shù)據(jù)遞交給接收站點(diǎn)以前不在傳輸站點(diǎn)和接收站點(diǎn)之間建立對話。它只是封裝和傳遞數(shù)和接收站點(diǎn)之間建立對話。它只是封裝和傳遞數(shù)據(jù),但不

8、向發(fā)送者或接收者報(bào)告包的狀態(tài),不處據(jù),但不向發(fā)送者或接收者報(bào)告包的狀態(tài),不處理所遇到的故障理所遇到的故障IP包由包由IP協(xié)議頭和協(xié)議數(shù)據(jù)兩部分構(gòu)成協(xié)議頭和協(xié)議數(shù)據(jù)兩部分構(gòu)成IP協(xié)議協(xié)議TCP協(xié)議協(xié)議TCP是重要的傳輸層協(xié)議,目的是允許數(shù)據(jù)在同是重要的傳輸層協(xié)議,目的是允許數(shù)據(jù)在同網(wǎng)絡(luò)的其他節(jié)點(diǎn)進(jìn)行可靠的交換。它能提供端口網(wǎng)絡(luò)的其他節(jié)點(diǎn)進(jìn)行可靠的交換。它能提供端口編號的譯碼,以識別主機(jī)的應(yīng)用程序,而且完成編號的譯碼,以識別主機(jī)的應(yīng)用程序,而且完成數(shù)據(jù)的數(shù)據(jù)的可靠傳輸可靠傳輸TCP協(xié)議具有嚴(yán)格的內(nèi)裝差錯檢驗(yàn)算法確保數(shù)據(jù)協(xié)議具有嚴(yán)格的內(nèi)裝差錯檢驗(yàn)算法確保數(shù)據(jù)的完整性的完整性TCP是面向字節(jié)的順序協(xié)議

9、,這意味著包內(nèi)的每是面向字節(jié)的順序協(xié)議,這意味著包內(nèi)的每個字節(jié)被分配一個順序編號,并分配給每包一個個字節(jié)被分配一個順序編號,并分配給每包一個順序編號順序編號TCP協(xié)議協(xié)議UDP協(xié)議協(xié)議UDP也是傳輸層協(xié)議,它是也是傳輸層協(xié)議,它是無連接的,不可靠的無連接的,不可靠的傳輸服務(wù),當(dāng)接收數(shù)據(jù)時它不向發(fā)送方提供確認(rèn)傳輸服務(wù),當(dāng)接收數(shù)據(jù)時它不向發(fā)送方提供確認(rèn)信息,他不提供輸入包的順序,如果出現(xiàn)丟失包信息,他不提供輸入包的順序,如果出現(xiàn)丟失包或重復(fù)包的情況,也不會向發(fā)送方發(fā)差錯報(bào)文,或重復(fù)包的情況,也不會向發(fā)送方發(fā)差錯報(bào)文,由于他執(zhí)行功能時具有較低的開銷,因而執(zhí)行速由于他執(zhí)行功能時具有較低的開銷,因而執(zhí)行

10、速度比度比TCP快快UDP協(xié)議協(xié)議socketLinux中的網(wǎng)絡(luò)編程通過中的網(wǎng)絡(luò)編程通過socket(套接字)接口(套接字)接口實(shí)現(xiàn),實(shí)現(xiàn),socket是一種文件描述符。是一種文件描述符。domain: AF_INET IPv4英特網(wǎng)域英特網(wǎng)域 AF_INET6 IPv6英特網(wǎng)域英特網(wǎng)域 AF_UNIX unix域域 AF_UNSPEC 未指定未指定類型類型套接字套接字socket有三種類型:有三種類型: 流式套接字(流式套接字(SOCK_STREAM):提供可靠的、面向):提供可靠的、面向連接的通訊流。它使用了連接的通訊流。它使用了TCP協(xié)議,協(xié)議,TCP保證了數(shù)據(jù)保證了數(shù)據(jù)傳輸?shù)恼_性和順

11、序性傳輸?shù)恼_性和順序性 數(shù)據(jù)報(bào)套接字(數(shù)據(jù)報(bào)套接字(SOCK_DGRAM):定義了一種無連):定義了一種無連接的服務(wù),數(shù)據(jù)通過相互獨(dú)立的報(bào)文進(jìn)行傳輸,是無接的服務(wù),數(shù)據(jù)通過相互獨(dú)立的報(bào)文進(jìn)行傳輸,是無序的,并且不保證可靠,它使用數(shù)據(jù)報(bào)協(xié)議序的,并且不保證可靠,它使用數(shù)據(jù)報(bào)協(xié)議UDP 原始套接字:運(yùn)行允許對底層協(xié)議如原始套接字:運(yùn)行允許對底層協(xié)議如IP或或ICMP直接訪直接訪問,主要用于新的網(wǎng)絡(luò)協(xié)議的測試等問,主要用于新的網(wǎng)絡(luò)協(xié)議的測試等protocal:通常為:通常為0,表示按給定的域和套接字類,表示按給定的域和套接字類型選擇默認(rèn)協(xié)議型選擇默認(rèn)協(xié)議字節(jié)序轉(zhuǎn)換字節(jié)序轉(zhuǎn)換不同類型的不同類型的CP

12、U對變量的字節(jié)存儲順序可能不同:對變量的字節(jié)存儲順序可能不同:有的系統(tǒng)是有的系統(tǒng)是大端字節(jié)序大端字節(jié)序,即,即高位在低地址,即低高位在低地址,即低位在高地址位在高地址,而有的系統(tǒng)如,而有的系統(tǒng)如x86是是小端字節(jié)序,小端字節(jié)序,即低位在低地址,高位在高地址即低位在低地址,高位在高地址,而網(wǎng)絡(luò)傳輸?shù)?,而網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)順序是一定要統(tǒng)一的,所有當(dāng)內(nèi)部字節(jié)存儲數(shù)據(jù)順序是一定要統(tǒng)一的,所有當(dāng)內(nèi)部字節(jié)存儲順序和網(wǎng)絡(luò)字節(jié)序(順序和網(wǎng)絡(luò)字節(jié)序(大端字節(jié)序大端字節(jié)序)不同時,就一)不同時,就一定要進(jìn)行轉(zhuǎn)換定要進(jìn)行轉(zhuǎn)換字節(jié)序轉(zhuǎn)換字節(jié)序轉(zhuǎn)換32bit的整數(shù)(的整數(shù)(0 x01234567)從地址)從地址0 x100

13、開始:開始:小端字節(jié)序:小端字節(jié)序:大端字節(jié)序大端字節(jié)序?yàn)槭裁匆M(jìn)行字節(jié)序轉(zhuǎn)換為什么要進(jìn)行字節(jié)序轉(zhuǎn)換INTEL的的CPU使用的是小端字節(jié)序,使用的是小端字節(jié)序,MOTOROLA68系列系列CPU使用的大端字節(jié)序使用的大端字節(jié)序 ARM可大可小,用戶設(shè)置可大可小,用戶設(shè)置MOTOROLA發(fā)一個發(fā)一個16位的數(shù)據(jù)位的數(shù)據(jù)0 x1234給給INTEL,傳到傳到INTEL時,就被時,就被INTEL解釋為解釋為0 x3412字節(jié)序轉(zhuǎn)換字節(jié)序轉(zhuǎn)換unsigned long htonl(unsigned long hostlong);unsigned short htons(unsigned short h

14、ostshort);unsigned long ntohl(unsigned long netlong);unsigned short ntohs(unsigned short netshort);htonl()/htons()函數(shù)是將函數(shù)是將32/16位整形數(shù)據(jù)從主機(jī)位整形數(shù)據(jù)從主機(jī)字節(jié)序轉(zhuǎn)換為網(wǎng)絡(luò)字節(jié)序字節(jié)序轉(zhuǎn)換為網(wǎng)絡(luò)字節(jié)序htonl()/htons()函數(shù)是將函數(shù)是將32/16位整形數(shù)據(jù)從網(wǎng)絡(luò)位整形數(shù)據(jù)從網(wǎng)絡(luò)字節(jié)序轉(zhuǎn)換為主機(jī)字節(jié)序字節(jié)序轉(zhuǎn)換為主機(jī)字節(jié)序通用地址格式通用地址格式sa_family:協(xié)議族,采用協(xié)議族,采用“AF_xxx”形式,如形式,如AF_INET(IP協(xié)議族)協(xié)議族)s

15、a_data:1包含了一些遠(yuǎn)程電腦的地址、端口和包含了一些遠(yuǎn)程電腦的地址、端口和套接字的數(shù)目,它里面的數(shù)據(jù)是夾雜在一起的套接字的數(shù)目,它里面的數(shù)據(jù)是夾雜在一起的地址結(jié)構(gòu)地址結(jié)構(gòu) 這個兩個數(shù)據(jù)類型是等效的,可以相互轉(zhuǎn)換,通這個兩個數(shù)據(jù)類型是等效的,可以相互轉(zhuǎn)換,通常使用常使用sockaddr_in更為方便更為方便地址轉(zhuǎn)換地址轉(zhuǎn)換IP地址通常由數(shù)字加點(diǎn)(地址通常由數(shù)字加點(diǎn)()的形式表)的形式表示,而示,而struct in_addr中使用的中使用的IP地址是由地址是由32位的位的整數(shù)表示的,為了轉(zhuǎn)換我們可以使用下面兩個函數(shù):整數(shù)表示的,為了轉(zhuǎn)換我們可以使用下面兩個函數(shù):in_

16、addr_t inet_addr(const char* strptr); 將一個點(diǎn)分十進(jìn)制的將一個點(diǎn)分十進(jìn)制的IP轉(zhuǎn)換成一個長整數(shù)型數(shù)轉(zhuǎn)換成一個長整數(shù)型數(shù)(u_long類型)類型)char *inet_ntoa(struct in_addr in)函數(shù)里面函數(shù)里面a代表代表ascii,n代表代表networkinet_aton是將是將a.b.c.d形式的形式的IP轉(zhuǎn)換為轉(zhuǎn)換為32位的位的IP,存儲在,存儲在inp指針里面,指針里面,inet_ntoa是將是將32位位IP轉(zhuǎn)轉(zhuǎn)換為換為a.b.c.d的格式的格式套接字與地址的綁定套接字與地址的綁定綁定綁定IP地址和端口號到地址和端口號到socke

17、tsockfd:要綁定的:要綁定的socket描述符描述符my_addr:指向含有本機(jī):指向含有本機(jī)IP地址和端口號等信息地址和端口號等信息的的sockaddr結(jié)構(gòu)的指針結(jié)構(gòu)的指針addrlen:通常設(shè)為:通常設(shè)為sockaddr結(jié)構(gòu)的長度結(jié)構(gòu)的長度返回值:成功返回返回值:成功返回0,否則返回,否則返回-1Socket編程函數(shù)編程函數(shù)connect用于與服務(wù)器建立連接用于與服務(wù)器建立連接sockfd:sockfd描述符描述符serv_addr:為指向?yàn)橹赶騭ockaddr結(jié)構(gòu)的指針結(jié)構(gòu)的指針addrlen:設(shè)為設(shè)為sockaddr結(jié)構(gòu)的長度結(jié)構(gòu)的長度返回值:返回值:0成功,成功,-1錯誤錯誤S

18、ocket編程函數(shù)編程函數(shù)listen設(shè)置服務(wù)器能處理的最大連接要求設(shè)置服務(wù)器能處理的最大連接要求sockfd:socket描述符描述符backlog:用來制定請求隊(duì)列中允許的最大請求數(shù),用來制定請求隊(duì)列中允許的最大請求數(shù),系統(tǒng)默認(rèn)值為系統(tǒng)默認(rèn)值為20,0表示無限制表示無限制返回值:返回值:0成功,成功,-1失敗失敗Socket編程函數(shù)編程函數(shù)accept接收連接請求接收連接請求sockdf:被監(jiān)聽的:被監(jiān)聽的socket描述符描述符addr:指向:指向sockaddr_in結(jié)構(gòu)的指針,存放提出結(jié)構(gòu)的指針,存放提出連接請求服務(wù)的主機(jī)連接請求服務(wù)的主機(jī)IP和端口號信息和端口號信息addrlen:

19、設(shè)為:設(shè)為sockaddr結(jié)構(gòu)的長度結(jié)構(gòu)的長度返回值:成功時返回一個新的返回值:成功時返回一個新的socket描述符,進(jìn)描述符,進(jìn)程可以通過這個新的描述符同客戶進(jìn)程傳輸數(shù)據(jù),程可以通過這個新的描述符同客戶進(jìn)程傳輸數(shù)據(jù),失敗返回失敗返回-1基于基于TCP服務(wù)器服務(wù)器創(chuàng)建一個創(chuàng)建一個socket綁定綁定IP地址、端口等信息到地址、端口等信息到socket上上設(shè)置允許的最大連接數(shù)設(shè)置允許的最大連接數(shù)等待來自客戶端的連接請求等待來自客戶端的連接請求收發(fā)數(shù)據(jù),收發(fā)數(shù)據(jù),send()和和recv()或者或者read()和和write()關(guān)閉網(wǎng)絡(luò)連接關(guān)閉網(wǎng)絡(luò)連接基于基于TCP客戶端客戶端創(chuàng)建一個創(chuàng)建一個so

20、cket設(shè)置要連接的服務(wù)器設(shè)置要連接的服務(wù)器IP地址和端口等屬性地址和端口等屬性連接服務(wù)器連接服務(wù)器收發(fā)數(shù)據(jù)收發(fā)數(shù)據(jù)關(guān)閉網(wǎng)絡(luò)連接關(guān)閉網(wǎng)絡(luò)連接基于基于TCP-通訊模型通訊模型基于基于UDP服務(wù)器服務(wù)器創(chuàng)建一個創(chuàng)建一個socket綁定綁定IP地址、端口等信息到地址、端口等信息到socket上上循環(huán)收發(fā)數(shù)據(jù),用函數(shù)循環(huán)收發(fā)數(shù)據(jù),用函數(shù)recvfrom(),sendto()關(guān)閉網(wǎng)絡(luò)連接關(guān)閉網(wǎng)絡(luò)連接基于基于UDP客戶端客戶端創(chuàng)建一個創(chuàng)建一個socket設(shè)置要連接的服務(wù)器設(shè)置要連接的服務(wù)器IP地址和端口等屬性地址和端口等屬性收發(fā)數(shù)據(jù),收發(fā)數(shù)據(jù),recvfrom(),sendto()關(guān)閉網(wǎng)絡(luò)連接關(guān)閉網(wǎng)絡(luò)連接

21、基于基于UDP通信模型通信模型服務(wù)器模型服務(wù)器模型在網(wǎng)絡(luò)程序里面,一般來說都是許多客戶對應(yīng)一在網(wǎng)絡(luò)程序里面,一般來說都是許多客戶對應(yīng)一個服務(wù)器,為了處理客戶的請求,對服務(wù)端的程個服務(wù)器,為了處理客戶的請求,對服務(wù)端的程序就提出了特殊的要求,目前最常用的服務(wù)器模序就提出了特殊的要求,目前最常用的服務(wù)器模型有:型有:循環(huán)服務(wù)器循環(huán)服務(wù)器:服務(wù)器在同一個時刻只可以響應(yīng)一:服務(wù)器在同一個時刻只可以響應(yīng)一個客戶端的請求個客戶端的請求并發(fā)服務(wù)器并發(fā)服務(wù)器:服務(wù)器在同一個時刻可以響應(yīng)多個:服務(wù)器在同一個時刻可以響應(yīng)多個客戶端的請求客戶端的請求UDP循環(huán)服務(wù)器循環(huán)服務(wù)器 UDP循環(huán)服務(wù)器的實(shí)現(xiàn)方法:循環(huán)服務(wù)器的實(shí)現(xiàn)方法:UDP服務(wù)器每次從套接字服務(wù)器每次從套接字上讀取一個客戶端的請求上讀取一個客戶端的請求-處理處理-然后將結(jié)果返回給客戶然后將結(jié)果返回給客戶機(jī)機(jī)socket(.);bind(.);while

溫馨提示

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

評論

0/150

提交評論