windows網(wǎng)絡(luò)編程答案_第1頁(yè)
windows網(wǎng)絡(luò)編程答案_第2頁(yè)
windows網(wǎng)絡(luò)編程答案_第3頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、windows網(wǎng)絡(luò)編程答案【篇一:2014大學(xué)windows網(wǎng)絡(luò)程序設(shè)計(jì)期末復(fù)習(xí)試卷模擬習(xí)題1】習(xí)題1以下哪個(gè)是tcp/ip模型?(b)應(yīng)用層,表示層,網(wǎng)絡(luò)層,物理層;b.應(yīng)用層,傳輸層,網(wǎng)絡(luò)層,鏈路層c.應(yīng)用層,傳輸層,鏈路層,物理層d.應(yīng)用層,傳輸層,網(wǎng)絡(luò)層,物理層p2p的設(shè)計(jì)架構(gòu)不包含以下哪一種?(c)a.集中式架構(gòu)b.完全分布式架構(gòu)c.點(diǎn)對(duì)點(diǎn)架構(gòu)d.混合型架構(gòu)http請(qǐng)求方法不包括如下哪一種(b)a.postb.updatec.getd.headd. ftp的作用不包括(c)a.文件共享;b.通過(guò)應(yīng)用程序直接或間接使用遠(yuǎn)程主機(jī);提供一致性的協(xié)議,避免用戶在不同主機(jī)上有相同的操作方式;提

2、供可靠及有效率的數(shù)據(jù)傳輸;smtp與pop3的端口分另U是:(b).25,75b.25,110c.21,75d.21,110.ip地址是,子網(wǎng)掩碼是,則其網(wǎng)段的廣播地址是(c)a.b.c.55d.55tcp的特點(diǎn)不包括如下哪一點(diǎn)(c)a.面向連接b.全雙工數(shù)據(jù)傳送c.傳輸速度快d.面向字節(jié)流a. 關(guān)于線程哪一點(diǎn)是對(duì)的。(d)任何一個(gè)c#程序都有一個(gè)默認(rèn)的線程,該線程是后臺(tái)線程;每個(gè)進(jìn)程都有一個(gè)線程池。線程池默認(rèn)大小有35個(gè)線程;線程池中的線

3、程都是前臺(tái)線程;在internet中用一個(gè)三元組可以在全局中唯一標(biāo)識(shí)一個(gè)應(yīng)用層進(jìn)程,這不包括下列哪一種(a)a.網(wǎng)絡(luò)層協(xié)議b.ip地址c.端口號(hào)d.傳輸層協(xié)議tcp/ip協(xié)議簇中,哪一種是網(wǎng)絡(luò)層協(xié)議(b).tcpb.arpc.smtpd.tftp端口的分配地址是1-65535,全局分配是1-1023,本地分配是1024-65535(f)線程池中既有后臺(tái)線程也有前臺(tái)線程,某進(jìn)程的所有前臺(tái)線程都終止了,后臺(tái)進(jìn)程也自然終止。(f)在smtp中,電子郵件由信封、首部和正文3部分組成。(t)數(shù)字簽名是私鑰加密,公鑰解密。(t)esmtp與smtp的區(qū)另U是發(fā)送郵件時(shí)要求用戶身份驗(yàn)證。(t).http的流

4、水線方式是指客戶在收到前一個(gè)響應(yīng)后才能發(fā)出下一個(gè)請(qǐng)求。(f)http(hypertexttransferprotocol),超文本傳輸協(xié)議,目前的版本是1.0O(f)nat功能是只能用硬件來(lái)實(shí)現(xiàn)(f)ip地址有a,b,c,d,e五類(lèi)(f)udp不需要連接,速度比tcp快;(t)udp傳輸?shù)臄?shù)據(jù)無(wú)消息邊界;(f)socket類(lèi)比位于底層tcpclient類(lèi)提供了更高層次的抽象,它們封裝tcp套接字的創(chuàng)建,不需要處理連接的細(xì)節(jié)。(f)監(jiān)聽(tīng)套接字與新創(chuàng)建的套接字所使用的端口不同。(f)本機(jī)回送地址是(t)socket套接字的accept()方法若檢測(cè)到監(jiān)聽(tīng)套接字的緩沖區(qū)是空的話,立

5、刻返回(f)什么是端口,網(wǎng)絡(luò)通信中為什么要引入端口?(6分)答:端口是tcp/ip協(xié)議簇中,應(yīng)用層進(jìn)程與傳輸層協(xié)議實(shí)體間的通信接口。端口是操作系統(tǒng)可分配的一種資源;應(yīng)用程序(進(jìn)程)通過(guò)系統(tǒng)調(diào)用與某端口綁定(binding)后,傳輸層傳給該端口的數(shù)據(jù)都被相應(yīng)進(jìn)程接收,相應(yīng)進(jìn)程發(fā)給傳輸層的數(shù)據(jù)都通過(guò)該端口輸出。1. 在網(wǎng)絡(luò)通信過(guò)程中,需要唯一識(shí)別通信兩端的端點(diǎn),即運(yùn)行于某機(jī)器中的應(yīng)用程序。如果沒(méi)有引入端口,則只能通過(guò)進(jìn)程號(hào)進(jìn)行識(shí)別。進(jìn)程號(hào)是系統(tǒng)動(dòng)態(tài)分配的,不同的系統(tǒng)會(huì)使用不同的進(jìn)程標(biāo)識(shí)符,應(yīng)用程序在運(yùn)行之前并不知道自己的進(jìn)程號(hào),如果需要運(yùn)行后再?gòu)V播進(jìn)程號(hào)則很難保證通信的順利進(jìn)行。而引入端口后,就可

6、以利用端口號(hào)識(shí)別應(yīng)用程序,同時(shí)通過(guò)固定端口號(hào)來(lái)識(shí)別和使用公共服務(wù),如http和ftp等。什么是套接字?(5分)答:套接字是對(duì)網(wǎng)絡(luò)中不同主機(jī)上應(yīng)用進(jìn)程之間進(jìn)行雙向通信的端點(diǎn)的抽象,一個(gè)套接字就是網(wǎng)絡(luò)上進(jìn)程通信的一端,提供了應(yīng)用進(jìn)程利用網(wǎng)絡(luò)協(xié)議棧交換數(shù)據(jù)的機(jī)制。套接字有哪些種類(lèi),分別有什么特點(diǎn)?(6分)答:(1)流式套接字。提供面向連接、可靠的數(shù)據(jù)傳輸服務(wù),數(shù)據(jù)無(wú)差錯(cuò)、無(wú)重復(fù)的發(fā)送,且按發(fā)送順序接收;內(nèi)設(shè)流量限制,避免數(shù)據(jù)超流限;數(shù)據(jù)被看做是字節(jié)流,無(wú)長(zhǎng)度限制;(2)數(shù)據(jù)報(bào)式套接字。提供無(wú)連接服務(wù);數(shù)據(jù)包以獨(dú)立包形式發(fā)送,不提供無(wú)差錯(cuò)保證,數(shù)據(jù)可能丟失或重復(fù),并且接收順序混亂。(3)原始套接字。原

7、始套接字允許對(duì)較低層次的協(xié)議,如ip、icmp直接訪問(wèn),用于檢驗(yàn)新的協(xié)議的實(shí)現(xiàn)消息無(wú)邊界問(wèn)題有哪幾種解決方法,各有什么優(yōu)缺點(diǎn)?(6分)答:1)發(fā)送固定消息的長(zhǎng)度。程序設(shè)計(jì)起來(lái)容易,但長(zhǎng)度的制定沒(méi)有統(tǒng)一的標(biāo)準(zhǔn)。2)將消息長(zhǎng)度與消息一起發(fā)送。長(zhǎng)度可自由控制,但長(zhǎng)度信息占有一定的比例,影響效率。3)使用特殊標(biāo)記分信息。設(shè)計(jì)起來(lái)簡(jiǎn)單,但發(fā)送的信息中不能含有標(biāo)記符。什么是網(wǎng)絡(luò)穿越,如何實(shí)現(xiàn)udp網(wǎng)絡(luò)穿越?(6分)答:網(wǎng)絡(luò)穿越是指在網(wǎng)絡(luò)通信過(guò)程中,通信的一端如果是內(nèi)網(wǎng)地址時(shí),需要利用nat進(jìn)行地址轉(zhuǎn)換。由于nat不允許外部主機(jī)主動(dòng)訪問(wèn)內(nèi)部主機(jī),因此通信的一端在發(fā)送消息前,必須解決如何不被另一端nat設(shè)備攔

8、截的問(wèn)題,即如何穿越對(duì)方nat的阻止?;趕erver的udp網(wǎng)絡(luò)穿越(1)客戶端a與客戶端b分別登錄服務(wù)器s;(2)a發(fā)送命令給s,請(qǐng)求s向b發(fā)出打洞請(qǐng)求。(3)s發(fā)送打洞命令給b;(4)b收到消息后向a發(fā)送消息;(5)a向b發(fā)送消息,實(shí)現(xiàn)網(wǎng)絡(luò)穿越;ftp協(xié)議的兩種工作方式是什么,請(qǐng)簡(jiǎn)述。(6分)答:(1)port方式,即客戶主動(dòng)式。客戶端向服務(wù)器的ftp端口(默認(rèn)是21)發(fā)送連接請(qǐng)求,服務(wù)器接受連接,建立一條命令鏈路。當(dāng)需要傳送數(shù)據(jù)時(shí),客戶端使用并監(jiān)聽(tīng)某臨時(shí)端口,并在命令鏈路上用port方式告訴服務(wù)器采用主動(dòng)傳輸方式。于是服務(wù)器從20端口向客戶端的臨時(shí)端口發(fā)送連接請(qǐng)求,建立一條數(shù)據(jù)鏈路來(lái)傳

9、送數(shù)據(jù)。(2)pasv方式,即客戶被動(dòng)式。客戶端向服務(wù)器的ftp端口(默認(rèn)是21)發(fā)送連接請(qǐng)求,服務(wù)器接受連接,建立一條命令鏈路。當(dāng)需要傳送數(shù)據(jù)時(shí),客戶端告訴服務(wù)器采用被動(dòng)傳輸方式。于是服務(wù)器使用并監(jiān)聽(tīng)某臨時(shí)端口,并在命令鏈路上用pasv命令告訴客戶端對(duì)應(yīng)的端口號(hào)。最后客戶端向服務(wù)器發(fā)送連接請(qǐng)求,建立一條數(shù)據(jù)鏈路來(lái)傳送數(shù)據(jù)。http協(xié)議的內(nèi)容有哪些?(5分)答:1. http請(qǐng)求信息。2. http方法。3. http響應(yīng)信息。4. urlhttp流程http無(wú)狀態(tài)與持久連接分另U是什么意思,請(qǐng)簡(jiǎn)述。(5分)答:無(wú)狀態(tài)的意思是,每一個(gè)請(qǐng)求與響應(yīng)是互相獨(dú)立的。而持久連接是,服務(wù)器會(huì)在一定時(shí)間內(nèi)保

10、留該連接的相關(guān)信息。1. 在ie地址欄中輸入域名后的http流程。(5分)url自動(dòng)解析;獲取ip,建立tcp連接;客戶端瀏覽器向服務(wù)器發(fā)出http請(qǐng)求;web服務(wù)器應(yīng)答,并向?yàn)g覽器發(fā)送數(shù)據(jù);web服務(wù)器關(guān)閉tcp連接。pop3流程有哪幾個(gè)階段?(5分)答:授權(quán)階段,認(rèn)證;操作階段,郵件接收;更新階段,更新郵件信箱;【篇二:2014大學(xué)windows網(wǎng)絡(luò)程序設(shè)計(jì)期末復(fù)習(xí)試卷模擬習(xí)題5】習(xí)題51tcp和udp連接的區(qū)別,分別適用于哪些應(yīng)用場(chǎng)合?2 tcp連接建立的過(guò)程(三次握手)tcp雙方都可以發(fā)送數(shù)據(jù)給對(duì)方,所以它是全雙工的協(xié)議tcp建立連接的過(guò)程通常被稱(chēng)為三次握手syn_sent(synse

11、nt)發(fā)起方發(fā)送一個(gè)設(shè)置了syn標(biāo)志的tcp數(shù)據(jù)包和初始化序列號(hào)(initialsequencenumber,isn)以及端口號(hào)給接收方,這常被叫做syn數(shù)據(jù)包或syn報(bào)文連接的狀態(tài)被稱(chēng)做syn_sentsyn_rcvd(synrecieved)接收方收到請(qǐng)求,給發(fā)起方發(fā)送一個(gè)設(shè)置了syn與ack標(biāo)志位的tcp數(shù)據(jù)包做為應(yīng)答,另外設(shè)置一個(gè)比客戶機(jī)發(fā)送來(lái)的isn大1個(gè)單位的isn值,這常被稱(chēng)為syn_ack數(shù)據(jù)包或syn_ack報(bào)文這時(shí)連接的狀態(tài)稱(chēng)做syn_rcvdestablished爰起方然后發(fā)送一個(gè)帶有ack應(yīng)答和增1后的isn標(biāo)志來(lái)確認(rèn)syn_ack至此,完成了三次握手,此時(shí)的連接狀態(tài)為

12、連結(jié)成功:establishedsockaddr與sockaddr_in的區(qū)另U,為什么要用兩個(gè)數(shù)據(jù)結(jié)構(gòu)?如何賦值?sockaddr包括sockaddr_in和sockaddr_un等,前者用于inet(網(wǎng)絡(luò))后者用于unix文件。sockaddr是winsockapi中參數(shù)的基本形式,sockaddr_in是其ip地址結(jié)構(gòu)。sockaddr是通用的套接字地址,而sockaddr_in則是internet環(huán)境下套接字的地址形式,二者長(zhǎng)度一樣,都是16個(gè)字節(jié)。二者是并列結(jié)構(gòu),指向sockaddr_in結(jié)構(gòu)的指針也可以指向sockaddr。一般情況下,需要把sockaddr_in結(jié)構(gòu)強(qiáng)制轉(zhuǎn)換成so

13、ckaddr結(jié)構(gòu)再傳入系統(tǒng)調(diào)用函數(shù)中。4建立tcp連接客戶端和服務(wù)端的過(guò)程。為什么服務(wù)端要調(diào)用bind函數(shù)而客戶端不用?為什么服務(wù)端需要指定端口而客戶端不用?建立基于udp的收發(fā)程序的過(guò)程服務(wù)端則需用bind函數(shù)連接和接收數(shù)據(jù)報(bào)因?yàn)榉?wù)程序必須調(diào)用bind函數(shù)來(lái)給其綁定一個(gè)ip地址和一個(gè)特定的端口號(hào),而客戶端不用。服務(wù)端需要通過(guò)指定端口來(lái)接收客戶的請(qǐng)求連接。5簡(jiǎn)述ip協(xié)議的特點(diǎn)tcp/ip協(xié)議的特點(diǎn) tcp/ip協(xié)議并不依賴于特定的網(wǎng)絡(luò)傳輸硬件,所以tcpiip協(xié)議能夠集成各種各樣的網(wǎng)絡(luò)。用戶能夠使用以太網(wǎng)(ethernet)、令牌環(huán)網(wǎng)(tokenringnetwork)、撥號(hào)線路(dial-

14、upline)、x.25網(wǎng)以及所有的網(wǎng)絡(luò)傳輸硬件。tcp/ip協(xié)議不依賴于任何特定的計(jì)算機(jī)硬件或操作系統(tǒng),提供開(kāi)放的協(xié)議標(biāo)準(zhǔn),即使不考慮internet,tcp/ip協(xié)議也獲得了廣泛的支持。所以tcp/ip協(xié)議成為一種聯(lián)合各中硬件和軟件的實(shí)用系統(tǒng)。tcp/ip工作站和網(wǎng)絡(luò)使用統(tǒng)一的全球范圍尋址系統(tǒng),在世界范圍內(nèi)給每個(gè)tcp/ip網(wǎng)絡(luò)指定唯一的地址。這樣就使得無(wú)論用戶的物理地址在哪兒,任何其他用戶都能訪問(wèn)該用戶。6廣播組播通信與點(diǎn)對(duì)點(diǎn)通信的區(qū)別廣播主機(jī)之間對(duì)所有”的通訊模式,網(wǎng)絡(luò)對(duì)其中每一臺(tái)主機(jī)發(fā)出的信號(hào)都進(jìn)行無(wú)條件復(fù)制并轉(zhuǎn)發(fā),所有主機(jī)都可以接收到所有信息(不管你是否需要)。組播主機(jī)之間對(duì)一組”

15、的通訊模式,也就是加入了同一個(gè)組的主機(jī)可以接受到此組內(nèi)的所有數(shù)據(jù),網(wǎng)絡(luò)中的交換機(jī)和路由器只向有需求者復(fù)制并轉(zhuǎn)發(fā)其所需數(shù)據(jù)。主機(jī)可以向路由器請(qǐng)求加入或退出某個(gè)組,網(wǎng)絡(luò)中的路由器和交換機(jī)有選擇的復(fù)制并傳輸數(shù)據(jù),即只將組內(nèi)數(shù)據(jù)傳輸給那些加入組的主機(jī)。點(diǎn)對(duì)點(diǎn)主機(jī)之間對(duì)一”的通訊模式,網(wǎng)絡(luò)中的交換機(jī)和路由器對(duì)數(shù)據(jù)只進(jìn)行轉(zhuǎn)發(fā)不進(jìn)行復(fù)制。至于區(qū)另U嘛,從mac地址上來(lái)分,mac地址是6個(gè)字節(jié)的,如果全是1就是廣播,如果第一個(gè)字節(jié)是01就是組播啦,其它的就是單播。7阻塞與非阻塞通信的區(qū)別以套接字為例,在阻塞模式下,利用tcp協(xié)議發(fā)送一個(gè)報(bào)文時(shí),如果低層協(xié)議沒(méi)有可用空間來(lái)存放用戶數(shù)據(jù),則應(yīng)用進(jìn)程將阻塞等待直到協(xié)

16、議有可用的空間。而在非阻塞模式下,調(diào)用將直接返回而不需等待。在應(yīng)用進(jìn)程調(diào)用接收函數(shù)接收?qǐng)?bào)文時(shí),如果是在阻塞模式下,若沒(méi)有到達(dá)的數(shù)據(jù),則調(diào)用將一直阻塞直到有數(shù)據(jù)到達(dá)或出錯(cuò);而在非阻塞模式下,將直接返回而不需等待。對(duì)于udp協(xié)議而言,由于udp沒(méi)有發(fā)送緩存,因此所有udp協(xié)議即使在阻塞模式下也不會(huì)發(fā)生阻塞。對(duì)于面向連接的協(xié)議,在連接建立階段,阻塞與非阻塞也表現(xiàn)不一。在阻塞模式下,如果沒(méi)有連接請(qǐng)求到達(dá),則等待連接調(diào)用將阻塞直到有連接請(qǐng)求到達(dá);但在非阻塞模式下,如果沒(méi)有連接請(qǐng)求到達(dá),等待連接調(diào)用將直接返回。8select函數(shù)工作機(jī)制分析select()的機(jī)制中提供一fd_set的數(shù)據(jù)結(jié)構(gòu),實(shí)際上是一l

17、ong類(lèi)型的數(shù)組,每一個(gè)數(shù)組元素都能與一打開(kāi)的文件句柄(不管是socket句柄,還是其他文件或命名管道或設(shè)備句柄)建立聯(lián)系,建立聯(lián)系的工作由程序員完成,當(dāng)調(diào)用select()時(shí),由內(nèi)核根據(jù)io狀態(tài)修改fd_set的內(nèi)容,由此來(lái)通知執(zhí)行了select()的進(jìn)程哪一socket或文件可讀9使用事件通知模型實(shí)現(xiàn)異步傳輸?shù)倪^(guò)程描述(自己的語(yǔ)言),wsaeventselect函數(shù)的作用說(shuō)明wsaasyncselect使用此模型,應(yīng)用程序可在一個(gè)套接字上進(jìn)行以windows消息為基礎(chǔ)的網(wǎng)絡(luò)事件通知,此模型提供了讀寫(xiě)數(shù)據(jù)能力的異步通知,但不提供異步數(shù)據(jù)傳送。異步數(shù)據(jù)傳送有重疊及完成端口模型提供”。過(guò)程:(1

18、)初始化套接字相關(guān)信息:(2)開(kāi)始啟動(dòng)一個(gè)事件通知。wsaasyncselect(sock,hwnd,自定義消息,網(wǎng)絡(luò)事件)響應(yīng)窗口的自定義消息處理函數(shù),其中l(wèi)param的高位字包含了可能出現(xiàn)的錯(cuò)誤代碼,低字節(jié)表示發(fā)生的網(wǎng)絡(luò)事件。wparam表示發(fā)生網(wǎng)絡(luò)事件的套接字。10 wsaasyncselect函數(shù)和windows消息機(jī)制的結(jié)合過(guò)程,一般來(lái)說(shuō),監(jiān)聽(tīng)套接字需要處理哪些網(wǎng)絡(luò)事件?會(huì)話套接字需要處理哪些網(wǎng)絡(luò)事件?windows消息處理過(guò)程窗口消息處理程序與窗口類(lèi)別相關(guān),窗口類(lèi)別是程序呼叫registerclass注冊(cè)的。依據(jù)該類(lèi)另U建立的窗口使用這個(gè)窗口消息處理程序來(lái)處理窗口的所有消息。win

19、dows通過(guò)呼叫窗口消息處理程序?qū)Υ翱诎l(fā)送消息。在第一次建立窗口時(shí),windows呼叫wndproc。在窗口關(guān)閉時(shí),windows也呼叫wndproc。窗口改變大小、移動(dòng)或者變成圖示時(shí),從菜單中選擇某一項(xiàng)目、挪動(dòng)滾動(dòng)條、按下鼠標(biāo)按鈕或者從鍵盤(pán)輸入字符時(shí),以及窗口顯示區(qū)域必須被更新時(shí),windows都要呼叫wndproc。11 windows消息處理函數(shù)的四個(gè)參數(shù)分另U是什么?攜帶了什么信息?1、消息的組成:一個(gè)消息由一個(gè)消息名稱(chēng)(uint),和兩個(gè)參數(shù)(wparam,Iparam)。當(dāng)用戶進(jìn)行了輸入或是窗口的狀態(tài)發(fā)生改變時(shí)系統(tǒng)都會(huì)發(fā)送消息到某一個(gè)窗口。2、誰(shuí)將收到消息:一個(gè)消息必須由一個(gè)窗口接

20、收。在窗口的過(guò)程(wndproc)中可以對(duì)消息進(jìn)行分析,對(duì)自己感興趣的消息進(jìn)行處理。3、未處理的消息到那里去了:m$為窗口編寫(xiě)了默認(rèn)的窗口過(guò)程,這個(gè)窗口過(guò)程將負(fù)責(zé)處理那些你不處理消息。正因?yàn)橛辛诉@個(gè)默認(rèn)窗口過(guò)程我們才可以利用windows的窗口進(jìn)行開(kāi)發(fā)而不必過(guò)多關(guān)注窗口各種消息的處理。4、窗口句柄:說(shuō)到消息就不能不說(shuō)窗口句柄,系統(tǒng)通過(guò)窗口句柄來(lái)在整個(gè)系統(tǒng)中唯一標(biāo)識(shí)一個(gè)窗口,發(fā)送一個(gè)消息時(shí)必須指定一個(gè)窗口句柄表明該消息由那個(gè)窗口接收。而每個(gè)窗口都會(huì)有自己的窗口過(guò)程,所以用戶的輸入就會(huì)被正確的處理。windows的線程函數(shù)使用什么作為參數(shù)?如果要從主線程(通常為界面線程)傳遞數(shù)據(jù)給工作線程,應(yīng)如何

21、傳遞?如果要從工作線程傳遞數(shù)據(jù)給主線程(界面線程有窗口),應(yīng)如何傳遞?線程的創(chuàng)建和終止windowsapi提供了createthread()函數(shù)來(lái)創(chuàng)建一個(gè)線程。其原型如下所示:handlecreatethread(lpsecurity_attributessecattr,size_tstacksize,lpthread_start_routinethreadfunc,lpvoidparam,dwordflags,lpdwordthreadid);在此,secattr是一個(gè)用來(lái)描述線程的安全屬性的指針。如果secattr是null,就會(huì)使用默認(rèn)的安全描述符。每個(gè)線程都具有自己的堆棧。可以使用st

22、acksize參數(shù)來(lái)按字節(jié)指定新線程堆棧的大小。如果這個(gè)整數(shù)值為0,那么這個(gè)線程堆棧的大小與創(chuàng)建它的線程相同。如果需要的話,這個(gè)堆??梢詳U(kuò)展。(通常使用0來(lái)指定線程堆棧的大小)。每個(gè)線程都在創(chuàng)建它的進(jìn)程中通過(guò)調(diào)用線程函數(shù)來(lái)開(kāi)始執(zhí)行。線程的執(zhí)行一直持續(xù)到線程函數(shù)返回。這個(gè)函數(shù)的地址(也就是線程的入口點(diǎn))在threadfunc中指定。每個(gè)線程函數(shù)都必須具有這樣的原型:dwordwinapithreadfunc(lpvoidparam);需要傳遞給新線程的任何參數(shù)都在createthread()的param中指定。線程函數(shù)在它的參數(shù)中接收這個(gè)32位的值。這個(gè)參數(shù)可以用作任何目的。函數(shù)返回它的退出狀態(tài)

23、。參數(shù)flags確定了線程的執(zhí)行狀態(tài)。如果它是0,線程會(huì)立即執(zhí)行。如果是create_suspend,線程則以掛起狀態(tài)創(chuàng)建并等待執(zhí)行。(可以通過(guò)調(diào)用resumethread()來(lái)開(kāi)始執(zhí)行,稍后討論)。與線程相關(guān)的標(biāo)識(shí)符以threadid所指向的長(zhǎng)整型返回。如果成功,函數(shù)則向線程返回一個(gè)句柄。如果失敗,則返回nullo可以通過(guò)調(diào)用closehandle()來(lái)顯式銷(xiāo)毀這個(gè)線程。否則,會(huì)在父進(jìn)程結(jié)束時(shí)自動(dòng)銷(xiāo)毀它。如前所述,當(dāng)線程的入口函數(shù)返回時(shí)終止執(zhí)行線程。進(jìn)程也可以使用terminatethread()或者exitthread()來(lái)手動(dòng)終止線程,這兩個(gè)函數(shù)的原型如下:boolterminateth

24、read(handlethread,dwordstatus);voidexitthread(dwordstatus);對(duì)于terminatethread(),thread是將要終止的線程的句柄。exitthread()只能用來(lái)終止調(diào)用了exitthread()的線程。對(duì)于兩個(gè)函數(shù)而言,status是終止?fàn)顟B(tài)。terminatethread()如果成功,則會(huì)返回非0值,否則返回0。調(diào)用exitthread()在功能上等價(jià)于允許線程函數(shù)正常返回。這意味著堆棧會(huì)正確地重新設(shè)置。當(dāng)使用terminatethread()結(jié)束線程時(shí),線程會(huì)立刻終止,而會(huì)執(zhí)行任何特定的清理任務(wù)。另外,terminateth

25、read()可能會(huì)停止正在執(zhí)行重要操作的線程。為此,當(dāng)入口函數(shù)返回時(shí),通常最好(也是最容易的)讓線程正常終止。12 windows的msg結(jié)構(gòu)包括哪些內(nèi)容?在windows程序中,消息是由msg結(jié)構(gòu)體來(lái)表示的。msg結(jié)構(gòu)體的定義如下(參見(jiàn)msdn):1. typedefstructtagmsg(hwndhwnd;uintmessage;wparamwparam;IparamIparam;【篇三:2014大學(xué)windows網(wǎng)絡(luò)編程(機(jī)械工業(yè)出版社)課后習(xí)題解答】ass=txt第一章網(wǎng)絡(luò)應(yīng)用程序設(shè)計(jì)基礎(chǔ)習(xí)題tcp/ip協(xié)議棧的五個(gè)層次是什么?在這些層次中,每層的主要任務(wù)是什么?解答:tcp/ip參

26、考模型分為五個(gè)層次:應(yīng)用層、傳輸層、網(wǎng)絡(luò)層、鏈路層和物理層。以下分別介紹各層的主要功能。應(yīng)用層是網(wǎng)絡(luò)應(yīng)用程序及其應(yīng)用層協(xié)議存留的層次。該層包括了所有與網(wǎng)絡(luò)相關(guān)的高層協(xié)議,如文件傳輸協(xié)議(filetransferprotocol,ftp)、超文本傳輸協(xié)議(hypertexttransferprotocol,http)、telent(遠(yuǎn)程終端協(xié)議)、簡(jiǎn)單郵件傳送協(xié)議(simplemailtransferprotocol,smtp)、因特網(wǎng)中繼聊天(internetrelaychat,irc)、網(wǎng)絡(luò)新聞傳輸協(xié)議(networknewstransferprotocol,nntp)等。傳輸層的功能是使源

27、端主機(jī)和目標(biāo)端主機(jī)上的對(duì)等實(shí)體可以進(jìn)行會(huì)話。在傳輸層定義了兩種服務(wù)質(zhì)量不同的協(xié)議,即:傳輸控制協(xié)議(transmissioncontrolprotocol,tcp)和用戶數(shù)據(jù)報(bào)協(xié)議(userdatagramprotocol,udp)。網(wǎng)絡(luò)層是整個(gè)tcp/ip協(xié)議棧的核心。它的功能是通過(guò)路徑選擇把分組發(fā)往目標(biāo)網(wǎng)絡(luò)或主機(jī),進(jìn)行網(wǎng)絡(luò)擁塞控制以及差錯(cuò)控制。鏈路層負(fù)責(zé)物理層和網(wǎng)絡(luò)層之間的通信,將網(wǎng)絡(luò)層接收到的數(shù)據(jù)分割成特定的可被物理層傳輸?shù)膸?,并交付物理層進(jìn)行實(shí)際的數(shù)據(jù)傳送。物理層的任務(wù)是將該幀中的一個(gè)一個(gè)比特從一個(gè)節(jié)點(diǎn)移動(dòng)到下一個(gè)節(jié)點(diǎn)。該層中的協(xié)議仍然是鏈路相關(guān)的,并且進(jìn)一步與鏈路(如雙絞線、單模光纖

28、)的實(shí)際傳輸媒體相關(guān)。對(duì)應(yīng)于不同的傳輸媒體,跨越這些鏈路移動(dòng)一個(gè)比特的方式不同。請(qǐng)分析路由器、鏈路層交換機(jī)和主機(jī)分別處理tcp/ip協(xié)議棧中的哪些層次?解答:路由器處理tcp/ip協(xié)議棧的物理層、鏈路層和網(wǎng)絡(luò)層;鏈路層交換機(jī)處理tcp/ip協(xié)議棧的物理層和鏈路層;主機(jī)處理tcp/ip協(xié)議棧的物理層、鏈路層、網(wǎng)絡(luò)層、傳輸層和應(yīng)用層。2. 請(qǐng)闡述nat技術(shù)的主要實(shí)現(xiàn)方式,并思考nat技術(shù)對(duì)網(wǎng)絡(luò)應(yīng)用程序的使用帶來(lái)哪些影響?解答:網(wǎng)絡(luò)地址轉(zhuǎn)換(networkaddresstranslation,nat)是接入廣域網(wǎng)(wan)的一種技術(shù),能夠?qū)⑺接校ūA簦┑刂忿D(zhuǎn)化為合法的ip地址,它被廣泛應(yīng)用于各種類(lèi)型

29、internet接入方式和各種類(lèi)型的網(wǎng)絡(luò)中。nat的實(shí)現(xiàn)方式有三種,即靜態(tài)轉(zhuǎn)換、動(dòng)態(tài)轉(zhuǎn)換和端口多路復(fù)用。nat有效解決了ip地址短缺的問(wèn)題,但是它也帶來(lái)了一些新的問(wèn)題。主要體現(xiàn)在:處于nat后面的主機(jī)不能充當(dāng)服務(wù)器直接接收外部主機(jī)的連接請(qǐng)求,必須對(duì)nat設(shè)備進(jìn)行相應(yīng)的配置才能完成外部地址與內(nèi)部服務(wù)器地址的映射;處于不同nat之后的兩臺(tái)主機(jī)無(wú)法建立直接的udp或tcp連接,必須使用中介服務(wù)器來(lái)幫助它們完成初始化的工作。3. 某業(yè)務(wù)要求實(shí)現(xiàn)一個(gè)局域網(wǎng)上網(wǎng)行為監(jiān)控的軟件,能夠?qū)钟蚓W(wǎng)內(nèi)用戶的上網(wǎng)行為(包括訪問(wèn)站點(diǎn)、使用聊天工具、發(fā)布言論等)進(jìn)行截獲和分析,請(qǐng)選擇一個(gè)合適的網(wǎng)絡(luò)程序設(shè)計(jì)方法,并說(shuō)明該軟

30、件設(shè)計(jì)的主要流程。解答:選擇使用具有較強(qiáng)數(shù)據(jù)捕獲能力的網(wǎng)絡(luò)編程方法,如winpcap編程或winsock編程中的原始套接字。局域網(wǎng)上網(wǎng)行為監(jiān)控軟件的主要流程包括:1)通過(guò)交換機(jī)的鏡像端口或分光方式,搭建局域網(wǎng)流量截獲環(huán)境,能夠?qū)⒕钟蚓W(wǎng)上下行的網(wǎng)絡(luò)流量復(fù)制出來(lái)進(jìn)行后續(xù)分析;2)對(duì)鏡像出的網(wǎng)絡(luò)流量進(jìn)行捕獲,得到原始數(shù)據(jù);3)對(duì)原始數(shù)據(jù)進(jìn)行過(guò)濾,識(shí)別并保留與上網(wǎng)行為監(jiān)控相關(guān)的協(xié)議數(shù)據(jù),如http、smtp、qq通信協(xié)議等;4)提取不同協(xié)議中監(jiān)控者感興趣的信息,如訪問(wèn)網(wǎng)址、聊天對(duì)象、發(fā)布言論等;5)分析數(shù)據(jù),進(jìn)行重點(diǎn)用戶監(jiān)控和異常行為檢測(cè)。第二章網(wǎng)絡(luò)程序通信模型習(xí)題1. 面向少量客戶持續(xù)請(qǐng)求的服務(wù)器和

31、面向大量客戶短期請(qǐng)求的服務(wù)器在設(shè)計(jì)中有哪些區(qū)別?解答:面向少量客戶持續(xù)請(qǐng)求的服務(wù)器在單位時(shí)間內(nèi)處理的客戶請(qǐng)求數(shù)量是有限的,但服務(wù)器與每個(gè)客戶端之間的交互時(shí)間和頻率是持續(xù)的。在這種情況下,服務(wù)器一般設(shè)計(jì)為并發(fā)服務(wù)器,為每個(gè)客戶端分配專(zhuān)門(mén)的線程以處理其復(fù)雜的業(yè)務(wù)需求。面向大量客戶短期請(qǐng)求的服務(wù)器在同一時(shí)間可能面臨成百上千個(gè)客戶的大量請(qǐng)求,但每個(gè)客戶端的請(qǐng)求與響應(yīng)比較簡(jiǎn)單。在這種情況下,服務(wù)器需要根據(jù)客戶的具體業(yè)務(wù)需求來(lái)設(shè)計(jì)。如果是類(lèi)似于時(shí)間服務(wù)的單次查詢-響應(yīng)服務(wù),可選擇循環(huán)服務(wù)器串行響應(yīng)每個(gè)客戶端的請(qǐng)求,避免線程膨脹和維護(hù)的復(fù)雜性;如果是類(lèi)似于web訪問(wèn)較復(fù)雜的服務(wù),可選擇基于完成端口的異步i/

32、o,與線程池聯(lián)合管理多個(gè)客戶端的請(qǐng)求。2. 某業(yè)務(wù)需要實(shí)現(xiàn)一個(gè)文件服務(wù)器,請(qǐng)給出該文件服務(wù)器的設(shè)計(jì)要點(diǎn)。解答:文件服務(wù)器主要處理文件的上傳與下載業(yè)務(wù),在設(shè)計(jì)時(shí)需要考慮以下要點(diǎn):1)用戶鑒別與權(quán)限管理。文件服務(wù)器應(yīng)具備一定的用戶登錄和權(quán)限管理能力,以辨別用戶身份,保護(hù)文件訪問(wèn)的合法性。2)數(shù)據(jù)傳輸可靠性。為了確保文件服務(wù)器的傳輸可靠性,在傳輸協(xié)議選擇上,可以使用tcp協(xié)議自定義文件傳輸過(guò)程,完成數(shù)據(jù)傳輸;或者使用ftp協(xié)議,用控制流進(jìn)行用戶授權(quán)和傳輸管理,用數(shù)據(jù)流具體傳送文件。3)數(shù)據(jù)傳輸?shù)男???紤]到用戶上傳和下載大數(shù)據(jù)的現(xiàn)實(shí)體驗(yàn),文件服務(wù)器應(yīng)提供高效的數(shù)據(jù)傳輸能力,比如使用多線程機(jī)制提高效率,使用p2p模型支持多點(diǎn)下載等。4)斷點(diǎn)續(xù)傳文件服務(wù)器應(yīng)提供斷點(diǎn)續(xù)傳能力,確保在用戶下載過(guò)程中斷并恢復(fù)后,能夠保存之前的數(shù)據(jù)和狀態(tài)并繼續(xù)后續(xù)的下載任務(wù)。第三章網(wǎng)絡(luò)數(shù)據(jù)的內(nèi)容與形態(tài)習(xí)題假設(shè)應(yīng)用程序使用有符號(hào)短整型給端口號(hào)賦值,當(dāng)端口號(hào)大于32768時(shí),端

溫馨提示

  • 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)論