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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(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í)題 11. 以下哪個(gè)是 tcp/ip 模型?( b )a應(yīng)用層,表示層,網(wǎng)絡(luò)層,物理層; b. 應(yīng)用層,傳輸層,網(wǎng)絡(luò)層,鏈路層c 應(yīng)用層,傳輸層,鏈路層,物理層 d. 應(yīng)用層,傳輸層,網(wǎng)絡(luò)層,物理層2.p2p 的設(shè)計(jì)架構(gòu)不包含以下哪一種?( c )a集中式架構(gòu)b. 完全分布式架構(gòu)c 點(diǎn)對(duì)點(diǎn)架構(gòu)d. 混合型架構(gòu)3.http請(qǐng)求方法不包括如下哪一種( b )apostb.updatec get d.head4.ftp 的作用不包括(c)a文件共享;b. 通過應(yīng)用程序直接或間接使用遠(yuǎn)程主

2、機(jī);c 提供一致性的協(xié)議,避免用戶在不同主機(jī)上有相同的操作方式; d. 提供可靠及有效率的數(shù)據(jù)傳輸;5.smtp 與 pop3 的端口分別是: ( b ) a25,75b. 25,110c 21,75d. 21,1106.ip 地址是,子網(wǎng)掩碼是,則其網(wǎng)段的廣播地址是( c)ac 7.tcp 的特點(diǎn)不包括如下哪一點(diǎn)(c)a面向連接b. 全雙工數(shù)據(jù)傳送c 傳輸速度快d. 面向字節(jié)流8. 關(guān)于線程哪一點(diǎn)是對(duì)的。(d)a任何一個(gè)c# 程序都有一個(gè)默認(rèn)的線程,該線程是后臺(tái)線程;b. 每個(gè)進(jìn)程都有一個(gè)線程池。線程池默認(rèn)大小有35 個(gè)線程;c 線程池中的線程都是前臺(tái)線程;9. 在 internet 中用一

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

4、份驗(yàn)證。(t)6. http 的流水線方式是指客戶在收到前一個(gè)響應(yīng)后才能發(fā)出下一個(gè)請(qǐng)求。 (f)7. http(hypertext transfer protocol),超文本傳輸協(xié)議 ,目前的版本是 1.0 。 (f )8. nat 功能是只能用硬件來實(shí)現(xiàn) ( f)9. ip 地址有 a,b,c,d,e 五類 ( f )10. udp 不需要連接,速度比 tcp 快; (t )11. udp 傳輸?shù)臄?shù)據(jù)無消息邊界; ( f)12. socket 類比位于底層 tcpclient 類提供了更高層次的抽象,它們封裝 tcp 套接字的創(chuàng)建,不需要處理連接的細(xì)節(jié)。( f)13. 監(jiān)聽套接字與新創(chuàng)建的

5、套接字所使用的端口不同。(f )14. 本機(jī)回送地址是( t)15. socket 套接字的 accept() 方法若檢測(cè)到監(jiān)聽套接字的緩沖區(qū)是空的話,立刻返回 (f)1. 什么是端口,網(wǎng)絡(luò)通信中為什么要引入端口?(6 分)答: 端口是 tcp/ip 協(xié)議簇中,應(yīng)用層進(jìn)程與傳輸層協(xié)議實(shí)體間的通信接口。端口是操作系統(tǒng)可分配的一種資源;應(yīng)用程序(進(jìn)程)通過系統(tǒng)調(diào)用與某端口綁定 (binding) 后,傳輸層傳給該端口的數(shù)據(jù)都被相應(yīng)進(jìn)程接收,相應(yīng)進(jìn)程發(fā)給傳輸層的數(shù)據(jù)都通過該端口輸出。1. 在網(wǎng)絡(luò)通信過程中 ,需要唯一識(shí)別通信兩端的端點(diǎn) ,即運(yùn)行于某機(jī)器中的應(yīng)用程序。如果沒有引入端口 ,則只能通過進(jìn)程

6、號(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)行。而引入端口后 ,就可以利用端口號(hào)識(shí)別應(yīng)用程序,同時(shí)通過固定端口號(hào)來識(shí)別和使用公共服務(wù),如http 和 ftp 等。2. 什么是套接字?( 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ī)制。3. 套接字有哪些種類,分別有什么特點(diǎn)?(6 分)答:( 1)流式套接字。提供面向連接、可靠的數(shù)據(jù)傳輸服務(wù),數(shù)據(jù)無差錯(cuò)、無重復(fù)的發(fā)送,且按

7、發(fā)送順序接收;內(nèi)設(shè)流量限制,避免數(shù)據(jù)超流限;數(shù)據(jù)被看做是字節(jié)流,無長(zhǎng)度限制;( 2)數(shù)據(jù)報(bào)式套接字。提供無連接服務(wù);數(shù)據(jù)包以獨(dú)立包形式發(fā)送,不提供無差錯(cuò)保證,數(shù)據(jù)可能丟失或重復(fù),并且接收順序混亂。( 3)原始套接字。原始套接字允許對(duì)較低層次的協(xié)議,如 ip 、 icmp 直接訪問,用于檢驗(yàn)新的協(xié)議的實(shí)現(xiàn)4. 消息無邊界問題有哪幾種解決方法,各有什么優(yōu)缺點(diǎn)?(6 分)答:1) 發(fā)送固定消息的長(zhǎng)度。程序設(shè)計(jì)起來容易,但長(zhǎng)度的制定沒有統(tǒng)一的標(biāo)準(zhǔn)。2) 將消息長(zhǎng)度與消息一起發(fā)送。長(zhǎng)度可自由控制,但長(zhǎng)度信息占有一定的比例,影響效率。3) 使用特殊標(biāo)記分信息。設(shè)計(jì)起來簡(jiǎn)單,但發(fā)送的信息中不能含有標(biāo)記符。5

8、. 什么是網(wǎng)絡(luò)穿越 ,如何實(shí)現(xiàn) udp 網(wǎng)絡(luò)穿越 ?(6 分)答:網(wǎng)絡(luò)穿越是指在網(wǎng)絡(luò)通信過程中,通信的一端如果是內(nèi)網(wǎng)地址時(shí),需要利用 nat 進(jìn)行地址轉(zhuǎn)換。由于 nat 不允許外部主機(jī)主動(dòng)訪問內(nèi)部主機(jī),因此通信的一端在發(fā)送消息前,必須解決如何不被另一端 nat 設(shè)備攔截的問題,即如何穿越對(duì)方 nat 的阻止。 基于 server的 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ò)穿越;6.f

9、tp協(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)聽某臨時(shí)端口,并在命令鏈路上用port 方式告訴服務(wù)器采用主動(dòng)傳輸方式。于是服務(wù)器從 20 端口向客戶端的臨時(shí)端口發(fā)送連接請(qǐng)求,建立一條數(shù)據(jù)鏈路來傳送數(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)聽某臨時(shí)端口,并在命令鏈

10、路上用 pasv 命令告訴客戶端對(duì)應(yīng)的端口號(hào)。最后客戶端向服務(wù)器發(fā)送連接請(qǐng)求,建立一條數(shù)據(jù)鏈路來傳送數(shù)據(jù)。7.http協(xié)議的內(nèi)容有哪些?(5 分)答:1. http請(qǐng)求信息。2. http方法。3. http響應(yīng)信息。4. url5. http流程8.http無狀態(tài)與持久連接分別是什么意思,請(qǐng)簡(jiǎn)述。(5 分)答:無狀態(tài)的意思是,每一個(gè)請(qǐng)求與響應(yīng)是互相獨(dú)立的。而持久連接是,服務(wù)器 會(huì)在一定時(shí)間內(nèi)保留該連接的相關(guān)信息。9. 在 ie 地址欄中輸入域名后的http 流程。( 5 分)1. url 自動(dòng)解析;2. 獲取 ip ,建立 tcp 連接;3. 客戶端瀏覽器向服務(wù)器發(fā)出 http 請(qǐng)求;4.

11、web 服務(wù)器應(yīng)答,并向?yàn)g覽器發(fā)送數(shù)據(jù);5. web 服務(wù)器關(guān)閉 tcp 連接。10.pop3流程有哪幾個(gè)階段?(5 分)答:1) 授權(quán)階段,認(rèn)證;2) 操作階段,郵件接收;3) 更新階段,更新郵件信箱;【篇二: 2014 大學(xué) windows 網(wǎng)絡(luò)程序設(shè)計(jì) 期末復(fù)習(xí) 試卷模擬習(xí)題 5】習(xí)題 5 1 tcp和 udp 連接的區(qū)別,分別適用于哪些應(yīng)用場(chǎng)合?2 tcp 連接建立的過程 (三次握手 )tcp 雙方都可以發(fā)送數(shù)據(jù)給對(duì)方,所以它是全雙工的協(xié)議 tcp 建立連接的過程通常被稱為三次握手1)syn_sent (syn sent)發(fā)起方發(fā)送一個(gè)設(shè)置了syn 標(biāo)志的 tcp 數(shù)據(jù)包和初始化序列號(hào)

12、(initial sequence number, isn) 以及端口號(hào)給接收方,這常被叫做 syn 數(shù)據(jù)包或 syn 報(bào)文連接的狀態(tài)被稱做syn_sent2)syn_rcvd (syn recieved)接收方收到請(qǐng)求,給發(fā)起方發(fā)送一個(gè)設(shè)置了syn與 ack 標(biāo)志位的tcp 數(shù)據(jù)包做為應(yīng)答,另外設(shè)置一個(gè)比客戶機(jī)發(fā)送來的isn 大 1 個(gè)單位的 isn 值,這常被稱為syn_ack 數(shù)據(jù)包或 syn_ack報(bào)文這時(shí)連接的狀態(tài)稱做 syn_rcvd3)establishedack 應(yīng)答和增 1后的 isn 標(biāo)志來確認(rèn)發(fā)起方然后發(fā)送一個(gè)帶有syn_ack: established至此,完成了三次握

13、手,此時(shí)的連接狀態(tài)為連結(jié)成功3 sockaddr與 sockaddr_in的區(qū)別,為什么要用兩個(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。一般情況下,需要把 soc

14、kaddr_in 結(jié)構(gòu)強(qiáng)制轉(zhuǎn)換成sockaddr結(jié)構(gòu)再傳入系統(tǒng)調(diào)用函數(shù)中。4 建立 tcp 連接客戶端和服務(wù)端的過程。為什么服務(wù)端要調(diào)用 bind 函數(shù)而客戶端不用?為什么服務(wù)端需要指定端口而客戶端不用?建立基于 udp 的收發(fā)程序的過程服務(wù)端則需用bind 函數(shù)連接和接收數(shù)據(jù)報(bào)因?yàn)榉?wù)程序必須調(diào)用 bind 函數(shù)來給其綁定一個(gè) ip 地址和一個(gè)特定的端口號(hào),而客戶端不用。服務(wù)端需要通過指定端口來接收客戶的請(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

15、) 、令牌環(huán)網(wǎng)(token ring network) 、撥號(hào)線路 (dial-upline) 、x.25 網(wǎng)以及所有的網(wǎng)絡(luò)傳輸硬件。 tcp/ip 協(xié)議不依賴于任何特定的計(jì)算機(jī)硬件或操作系統(tǒng),提供開放的協(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ò)指定唯一的地址。這樣就使得無論用戶的物理地址在哪兒,任何其他用戶都能訪問該用戶。 6 廣播組播通信與點(diǎn)對(duì)點(diǎn)通信的區(qū)別廣播主機(jī)之間 “一對(duì)所有 ”的通訊模式,網(wǎng)

16、絡(luò)對(duì)其中每一臺(tái)主機(jī)發(fā)出的信號(hào)都進(jìn)行無條件復(fù)制并轉(zhuǎn)發(fā),所有主機(jī)都可以接收到所有信息(不管你是否需要)。組播主機(jī)之間 “一對(duì)一組 ”的通訊模式,也就是加入了同一個(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ū)別嘛 , 從 mac 地址上來分 , mac 地址是 6 個(gè)字節(jié)的 , 如果全是 1 就是廣播 ,如果第一個(gè)字節(jié)是 01 就是組播

17、啦 , 其它的就是單播。7 阻塞與非阻塞通信的區(qū)別以套接字為例,在阻塞模式下,利用 tcp 協(xié)議發(fā)送一個(gè)報(bào)文時(shí),如果低層協(xié)議沒有可用空間來存放用戶數(shù)據(jù),則應(yīng)用進(jìn)程將阻塞等待直到協(xié)議有可用的空間。而在非阻塞模式下,調(diào)用將直接返回而不需等待。在應(yīng)用進(jìn)程調(diào)用接收函數(shù)接收?qǐng)?bào)文時(shí),如果是在阻塞模式下,若沒有到達(dá)的數(shù)據(jù),則調(diào)用將一直阻塞直到有數(shù)據(jù)到達(dá)或出錯(cuò);而在非阻塞模式下,將直接返回而不需等待。對(duì)于 udp 協(xié)議而言,由于 udp 沒有發(fā)送緩存,因此所有 udp 協(xié)議即使在阻塞模式下也不會(huì)發(fā)生阻塞。對(duì)于面向連接的協(xié)議,在連接建立階段,阻塞與非阻塞也表現(xiàn)不一。在阻塞模式下,如果沒有連接請(qǐng)求到達(dá),則等待連接

18、調(diào)用將阻塞直到有連接請(qǐng)求到達(dá);但在非阻塞模式下,如果沒有連接請(qǐng)求到達(dá),等待連接調(diào)用將直接返回。8 select函數(shù)工作機(jī)制分析select() 的機(jī)制中提供一fd_set的數(shù)據(jù)結(jié)構(gòu),實(shí)際上是一long 類型的數(shù)組, 每一個(gè)數(shù)組元素都能與一打開的文件句柄(不管是socket句柄 ,還是其他 文件或命名管道或設(shè)備句柄)建立聯(lián)系,建立聯(lián)系的工作由程序員完成,當(dāng)調(diào)用 select() 時(shí),由內(nèi)核根據(jù)io 狀態(tài)修改 fd_set 的內(nèi)容,由此來通知執(zhí) 行了 select() 的進(jìn)程哪一socket或文件可讀9 使用事件通知模型實(shí)現(xiàn)異步傳輸?shù)倪^程描述(自己的語言), wsaeventselect 函數(shù)的作

19、用說明wsaasyncselect 使用此模型,應(yīng)用程序可在一個(gè)套接字上進(jìn)行以 windows 消息為基礎(chǔ)的網(wǎng)絡(luò)事件通知,此模型提供了讀寫數(shù)據(jù)能力的異步通知,但不提供異步數(shù)據(jù)傳送。異步數(shù)據(jù)傳送有 “重疊及完成端口模型提供 ”。過程: (1) 初始化套接字相關(guān)信息:(2) 開始啟動(dòng)一個(gè)事件通知。 wsaasyncselect(sock, hwnd, 自定義消息 , 網(wǎng)絡(luò)事件 )(3) 響應(yīng)窗口的自定義消息處理函數(shù), 其中 lparam 的高位字包含了可能出現(xiàn)的錯(cuò)誤代碼,低字節(jié)表示發(fā)生的網(wǎng)絡(luò)事件。 wparam 表示發(fā)生網(wǎng)絡(luò)事件的套接字。10 wsaasyncselect函數(shù)和 windows消息

20、機(jī)制的結(jié)合過程,一般來說,監(jiān)聽套接字需要處理哪些網(wǎng)絡(luò)事件?會(huì)話套接字需要處理哪些網(wǎng)絡(luò)事件?11 windows消息處理過程窗口消息處理程序與窗口類別相關(guān),窗口類別是程序呼叫 registerclass 注冊(cè)的。 依據(jù)該類別建立的窗口使用這個(gè)窗口消息處理程序來處理窗口的所有消息。 windows 通過呼叫窗口消息處理程序?qū)Υ翱诎l(fā)送消息。在第一次建立窗口時(shí), windows 呼叫 wndproc 。在窗口關(guān)閉時(shí), windows 也呼叫 wndproc 。窗口改變大小、移動(dòng)或者變成圖示時(shí),從菜單中選擇某一項(xiàng)目、挪動(dòng)滾動(dòng)條、按下鼠標(biāo)按鈕或者從鍵盤輸入字符時(shí),以及窗口顯示區(qū)域必須被更新時(shí),window

21、s都要呼叫wndproc。12 windows消息處理函數(shù)的四個(gè)參數(shù)分別是什么?攜帶了什么信息?1、消息的組成:一個(gè)消息由一個(gè)消息名稱(uint ),和兩個(gè)參數(shù)( wparam , lparam )。當(dāng)用戶進(jìn)行了輸入或是窗口的狀態(tài)發(fā)生改變時(shí)系統(tǒng)都會(huì)發(fā)送消息到某一個(gè)窗口。2、誰將收到消息:一個(gè)消息必須由一個(gè)窗口接收。在窗口的過程( wndproc )中可以對(duì)消息進(jìn)行分析,對(duì)自己感興趣的消息進(jìn)行處理。3、未處理的消息到那里去了: m$ 為窗口編寫了默認(rèn)的窗口過程,這個(gè)窗口過程將負(fù)責(zé)處理那些你不處理消息。正因?yàn)橛辛诉@個(gè)默認(rèn)窗口過程我們才可以利用 windows 的窗口進(jìn)行開發(fā)而不必過多關(guān)注窗口各種消

22、息的處理。4、窗口句柄:說到消息就不能不說窗口句柄,系統(tǒng)通過窗口句柄來在整個(gè)系統(tǒng)中唯一標(biāo)識(shí)一個(gè)窗口,發(fā)送一個(gè)消息時(shí)必須指定一個(gè)窗口句柄表明該消息由那個(gè)窗口接收。而每個(gè)窗口都會(huì)有自己的窗口過程,所以用戶的輸入就會(huì)被正確的處理。13 windows 的線程函數(shù)使用什么作為參數(shù)?如果要從主線程 (通常為界面線程 )傳遞數(shù)據(jù)給工作線程,應(yīng)如何傳遞?如果要從工作線程傳遞數(shù)據(jù)給主線程(界面線程有窗口),應(yīng)如何傳遞?線程的創(chuàng)建和終止windows api 提供了 createthread() 函數(shù)來創(chuàng)建一個(gè)線程。其原型如下所示: handle createthread(lpsecurity_attribut

23、es secattr, size_t stacksize,lpthread_start_routine threadfunc,lpvoid param,dword flags,lpdword threadid);在此, secattr 是一個(gè)用來描述線程的安全屬性的指針。如果 secattr 是 null ,就會(huì)使用默認(rèn)的安全描述符。每個(gè)線程都具有自己的堆棧??梢允褂胹tacksize參數(shù)來按字節(jié)指定新線程堆棧的大小。如果這個(gè)整數(shù)值為0,那么這個(gè)線程堆棧的大小與創(chuàng)建它的線程相同。如果需要的話,這個(gè)堆??梢詳U(kuò)展。 (通常使用 0 來指定線程堆棧的大小 )。 每個(gè)線程都在創(chuàng)建它的進(jìn)程中通過調(diào)用線程

24、函數(shù)來開始執(zhí)行。線程的執(zhí)行一直持續(xù)到線程函數(shù)返回。這個(gè)函數(shù)的地址 (也就是線程的入口點(diǎn) )在 threadfunc 中指定。每個(gè)線程函數(shù)都必須具有這樣的原型:dword winapi threadfunc(lpvoid param);需要傳遞給新線程的任何參數(shù)都在createthread()的 param中指定。線程函數(shù)在它的參數(shù)中接收這個(gè)32 位的值。這個(gè)參數(shù)可以用作任何目的。函數(shù)返回它的退出狀態(tài)。參數(shù) flags 確定了線程的執(zhí)行狀態(tài)。如果它是0,線程會(huì)立即執(zhí)行。如果是 create_suspend,線程則以掛起狀態(tài)創(chuàng)建并等待執(zhí)行。(可以通過調(diào)用resumethread()來開始執(zhí)行,稍后

25、討論)。與線程相關(guān)的標(biāo)識(shí)符以threadid所指向的長(zhǎng)整型返回。如果成功,函數(shù)則向線程返回一個(gè)句柄。如果失敗,則返回null 。可以通過調(diào)用closehandle()來顯式銷毀這個(gè)線程。否則,會(huì)在父進(jìn)程結(jié)束時(shí)自動(dòng)銷毀它。如前所述,當(dāng)線程的入口函數(shù)返回時(shí)終止執(zhí)行線程。進(jìn)程也可以使用terminatethread()或者 exitthread()來手動(dòng)終止線程,這兩個(gè)函數(shù)的原型如下:bool terminatethread(handle thread, dword status); void exitthread(dword status);對(duì) 于 terminatethread() , thre

26、ad 是將要終止的線程的句柄。 exitthread() 只能用來終止調(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ù)。另外, terminatethread() 可能會(huì)停止正在執(zhí)行重要操作的線程。為此,當(dāng)入口函數(shù)返回時(shí),通 常最好 (也是最容易的 )讓線程正常終止。14 win

27、dows的 msg 結(jié)構(gòu)包括哪些內(nèi)容?在 windows 程序中,消息是由 msg 結(jié)構(gòu)體來表示的。 msg 結(jié)構(gòu)體的定義如下(參見 msdn ):typedef struct tagmsg hwnd hwnd;uint message;wparam wparam;lparam lparam;【篇三: 2014 大學(xué) windows 網(wǎng)絡(luò)編程 (機(jī)械工業(yè)出版社 ) 課后習(xí)題解答】ass=txt> 第一章 網(wǎng)絡(luò)應(yīng)用程序設(shè)計(jì)基礎(chǔ)習(xí)題1. tcp/ip 協(xié)議棧的五個(gè)層次是什么?在這些層次中,每層的主要任務(wù)是什么?解答: tcp/ip 參考模型分為五個(gè)層次:應(yīng)用層、傳輸層、網(wǎng)絡(luò)層、鏈路層和物理層

28、。以下分別介紹各層的主要功能。應(yīng)用層是網(wǎng)絡(luò)應(yīng)用程序及其應(yīng)用層協(xié)議存留的層次。該層包括了所有與網(wǎng)絡(luò)相關(guān)的高層協(xié)議,如文件傳輸協(xié)議(file transfer protocol ,ftp )、超文本傳輸協(xié)議(hypertext transfer protocol,http )、telent (遠(yuǎn)程終端協(xié)議)、簡(jiǎn)單郵件傳送協(xié)議(simple mailtransfer protocol, smtp )、因特網(wǎng)中繼聊天(internet relay chat,irc )、網(wǎng)絡(luò)新聞傳輸協(xié)議(nntp )等。network news transfer protocol,傳輸層的功能是使源端主機(jī)和目標(biāo)端主機(jī)上

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

30、際傳輸媒體相關(guān)。對(duì)應(yīng)于不同的傳輸媒體,跨越這些鏈路移動(dòng)一個(gè)比特的方式不同。2. 請(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)用層。3. 請(qǐng)闡述 nat 技術(shù)的主要實(shí)現(xiàn)方式,并思考 nat 技術(shù)對(duì)網(wǎng)絡(luò)應(yīng)用程序的使用帶來哪些影響?解答:網(wǎng)絡(luò)地址轉(zhuǎn)換(network address translation,nat )是接入廣域網(wǎng)( wan )的一種技術(shù),能夠?qū)⑺接校ūA簦┑刂忿D(zhuǎn)化為合法

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

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

33、監(jiān)控和異常行為檢測(cè)。第二章網(wǎng)絡(luò)程序通信模型習(xí)題1. 面向少量客戶持續(xù)請(qǐng)求的服務(wù)器和面向大量客戶短期請(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è)客戶端分配專門的線程以處理其復(fù)雜的業(yè)務(wù)需求。面向大量客戶短期請(qǐng)求的服務(wù)器在同一時(shí)間可能面臨成百上千個(gè)客戶的大量請(qǐng)求,但每個(gè)客戶端的請(qǐng)求與響應(yīng)比較簡(jiǎn)單。在這種情況下,服務(wù)器需要根據(jù)客戶的具體業(yè)務(wù)需求來設(shè)計(jì)。如果是類似于時(shí)間服務(wù)的單次查詢 -響應(yīng)服務(wù),可選擇循環(huán)服務(wù)器串行響應(yīng)每個(gè)客戶端的請(qǐng)求,避免線程

34、膨脹和維護(hù)的復(fù)雜性;如果是類似于web 訪問較復(fù)雜的服務(wù),可選擇基于完成端口的異步 i/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ù)文件訪問的合法性。2) 數(shù)據(jù)傳輸可靠性。為了確保文件服務(wù)器的傳輸可靠性,在傳輸協(xié)議選擇上,可以使用tcp 協(xié)議自定義文件傳輸過程,完成數(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ù)傳能力,確保在用戶下載過程中斷并恢復(fù)后,能夠保存之前的數(shù)據(jù)和狀態(tài)并繼續(xù)后續(xù)的下載任務(wù)。第三章網(wǎng)絡(luò)數(shù)據(jù)的內(nèi)容與形態(tài)習(xí)題1. 假設(shè)應(yīng)用程序使用有符號(hào)短整型給端口號(hào)賦值,當(dāng)端口號(hào)大于 32768

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論