



下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、0708 學年第一學期網絡程序設計課程期末考試試卷(A 卷答案)一 、單選題(本題共 40 分,每小題 2 分)1下列( C)不屬于計算機網絡硬件的組成部分。A)服務器 B )網卡 C )網絡操作系統(tǒng) D )通信介質 2接口是指( A )之間交互的界面A)同一系統(tǒng)相鄰層 B )不同系統(tǒng)同一層次 C)不同系統(tǒng)相鄰層 D )對等實體 3TCP/IP 協議蔟共有(A )層。A)4 B )5 C )6 D )7 4在 TCP/IP 協議簇中,(B)組屬于應用層協議A)IP 、TCP和 UDP B) FTP 、SMTP和 TELNET C) ARP、IP 和 UDP D)ICMP、ARP和 RARP )
2、55 D) 5以下 IP 地址(B )是廣播地址 . A)55 B)55 C6網間進程通信與(D )無關A)協議 B )地址 C )端口 D )進程號7關于 UDP協議,以下說法不正確的是(A)A)UDP是面向無連接的互連層協議,它是無序,不可靠的協議。B)使用 UDP通信不需要建立連接也不需要釋放連接。C)UDP適合于短信息服務。D)自身不提供流量控制機制。8. 在 main() 中若連續(xù)執(zhí)行i=fork()。j=fork()。k=fork()。后,由此引發(fā)(C )個進程同時存在。A)4 B )6 C )8 D )9 9. 同一進程中的線程不能共享(D)A)全局變量 B )打開的文件描述符
3、C )當前工作目錄 D)errno 變量10將域名轉換為十進制點分格式的IP 地址應使用(A)A)gethostbyname() B)gethostbyaddr() C)getservbyname() D)gethostname() 11下列( B)信號是不能忽略的。A)SIGINT B )SIGSTOP C)SIGQUIT D)SIGCHLD 12下列說法(C)是不正確的A)父進程應調用 wait() 或 waitpid() 程為僵死進程 B)管道是單工通信 C)FIFO 只能在父子進程間通信釋放其已終止的子進程的資源,否則終止的子進D)消息隊列的訪問本身具有鎖機制)13在 vi 編輯器使用
4、中,末行命令s/print/printf/g的功能是 ( CA)將當前行所有字符串print改為 printf AB)將當前行第一個字符串print改為 printf C)將所有行所有字符串print改為 printf D)將所有行第一個字符串print改為 printf 14在 TCP通信中,客戶端用connect 進行連接請求,正確的是(A)z_size= sizeof(sockaddr_in)。connect(fd,(sockaddr *)(&server),z_size);B)z_size= sizeof(sockaddr_in)。connect(fd,( sockaddr *)(&s
5、erver),&z_size);C)z_size= sizeof(sockaddr_in)。connect(fd,( sockaddr *)(server),z_size);D)z_size= sizeof(sockaddr_in)。connect(fd,( sockaddr *)(server),&z_size);15close() 和 shutdown() 都可以用于關閉 socket 描述符,其中 close() 的功能是(C)主機的網絡A)可以只關閉接收端 B)可以只關閉發(fā)送端C)同時關閉 D)以上三種都可以16按 IPV4 網絡掩碼規(guī)則 , 如沒有進一步子網劃分,IP 地址為 8掩碼
6、是(B)A) B) C) D)非法 IP 地址,無法確定網絡掩碼17以下關于帶外數據的說法錯誤的是( C ) A)帶外數據是通信過程中優(yōu)先得到服務的數據。B)帶外數據只有一個字節(jié)。C)read() 是不能接收帶外數據的。D)通過帶外數據實現心跳信號的發(fā)送和接收 , 判斷客戶端是否與服務器失去聯系。18I/O 多路復用中,建立需要監(jiān)視的套接字描述符 confd 與描述符集合 fdset 的聯系,使用(A)A)FD_SET(confd,&fdset) 。 B )select(maxfd+1,&fdset,NULL,NULL,NULL)。( C )能正確將點分十進制格式的 C )FD_ISSET(c
7、onfd,&fdset)。D)FD_CLR(confd,&fdset )。19下列語句中,若struct sockaddr_in adr_inetIP 地址轉換為地址結構變量中所需要的地址信息。A) inet_aton(“ 202.113. 16.10 ” ,&adr_inet.sin_addr.s_addr)。B) adr_inet.sin_addr=inet_aton(“ 202.113. 16.10 ” ) 。 C) adr_inet.sin_addr.s_addr=inet_addr(“ 202.113. 16.10 ” ) 。D) adr_inet.sin_addr=inet_add
8、r(“ 202.113. 16.10 ” ) 。20系統(tǒng)調用 alarm(5)。 的功能是(A)A)設置定時信號的時間 B C)通知父進程,子進程已終止)捕獲定時信號并作出響應處理 D )生成系統(tǒng)時間戳二、填空題(本題共 20 分,每小題 2 分)1在網絡中,某 ISP 擁有一批 IP 地址,但用戶需求的 IP 數量已超過此個數,此時可以采用當用戶有連接請求時分配 IP 的方式(每次分配的 IP 可能不同),斷開連接立即回收此 IP,這種分配 IP 的方式稱為(動態(tài) IP 地址分配 )。2如果發(fā)現所編輯的程序第80 行有錯誤,先使vi編輯器進入命令模式,再打入( 80G )可將光標立即移動到第
9、80 行。和 f2.cpp ,其中 abc.cpp中含有3若當前目錄有C+源程序 my.h, abc.cpp、f1.cppmain() ,且含有線程的相關操作,請用一條命令對它們編譯、連接并生成可執(zhí)行文件abc.exe ,應使用( g+ abc.cpp f1.cpp f2.cpp -lpthread o abc.exe ). 4. SOCK_STREAM 套接字是基于( TCP )協議的。5. 若定義:pthread_t th1。struct student int num 。struct sockaddr_in addr。)命令可以產生新線程,使新線程執(zhí)STU。用( pthread_crea
10、te(&th1,fun,(void *)&STU)行子函數fun(),其中 fun() 的原型為 void *fun(void *ac),ac 為形參,而 STU 為調用fun() 時的實參。6. 互斥鎖是提供(線程同步)的一種機制,用于保護線程代碼中共享數據的完整性。7使用 ls l aaa 命令,顯示結果的第一列內容為 prw-r- ,說明 aaa 是( 管道)類型的文件。8. msgctl(msgid,IPC_RMID,0)。的功能是(刪除消息隊列 msgid )。9帶外數據的發(fā)送和接收,可直接使用 send() 、recv() 等系統(tǒng)調用中的參數指定,用命令( send(sockfd,
11、 ” A” ,1,MSG_OOB)。)可向套接字描述符 sockfd 發(fā)送帶外數據A。10若 struct sockaddr_in server_addr。初始化一個通配 IP 地址時(自動獲得本機 IP地址),應使用(server_addr.sin_addr.s_addr=ntohl(INADDR_ANY)。 )。三、判斷(本題共 20 分,每小題 2 分)1( 對 )IPV4 地址占 4 個字節(jié),網卡地址占 6 個字節(jié)2( 錯 )不同協議(如 TCP、UDP)也不能使用相同的端口號。3( 對 )在單一主機上進程間的通信(IPC)也可以使用 socket 技術實現。4. ( 對 )在 UDP
12、通信 Client/Server模式中,必須客戶端先發(fā)送數據,而在TCP 通信Client/Server模式中,建立連接后,不要求客戶端必須先發(fā)送數據。5( 錯 )在進程通信過程中,有名管道只能用于具有共同祖先進程間的通信。6( 對 )使用 kill() 可以向某一進程組發(fā)送信號。7( 錯 )用刪除文件的方法可以刪除消息隊列。8( 錯 )出錯信息函數strerror()基于 errno當前值在標準錯誤上打印一條出錯信息。9( 錯 )accept() 系統(tǒng)調用既可以用于服務器端也可以用于客戶端。10. ( 對 )vi 中使用 rx 將光標處字符替換為 x 。四、應用題(本題共 20 分,每小題
13、5 分)1寫出多進程并發(fā)服務器循環(huán)接收多個連接的典型代碼假設連接套接字為confd ,偵聽套接字為lisfd, 客戶地址變量定義為sockaddr_in cli。處理客戶數據的子程序原型為:void fun(int fd,sockaddr_in client)(要求寫出如何接收不同客戶連接請求,創(chuàng)建子進程,父子進程代碼等)答:pid_t len=sizeof(cli)。while(1) confd=accept(lisfd,(sock_addr *)(&cli),&len)。if(pid=fork()0) close(confd)。 continue。 else if(pid=
14、0) close(lisfd)。 fun(confd,cli) else cout” fork error!n” 。 exit(0)。 2按要求寫出程序片段:假設可執(zhí)行程序名為proc1, 運行程序時通過命令行參數main(int argc,char *argv)給 出 IP地 址 ( 8) 和 端 口 號 ( 9999) ,即./proc1 8 9999, 若定義 sockaddr_in server;請寫出初始化server成員的代碼段。答: memset(&server,0,sizeof(server)。) 給服/bzero(&server,sizeof(serve
15、r)。 server.sin_family=AF_INET。server.sin_port=htons(atoi(argv2)。 server.sin_addr.s_addr=inet_addr(argv1)/inet_aton(argv1,&server.sin_addr)。3寫出客戶端動態(tài)發(fā)送一維double 型數組 ( 要求從鍵盤輸入數組規(guī)模及各數組元素務器端的函數 :void fun(int confd)。答:#include #include void fun(int confd) int size。 double *p。 cinsize。 send(confd,&size,sizeof(int),0) p=new doublesize。 for(int i=0。ipi。 send(confd,p,sizeof(int)*size,0)delete p。 4程序完善:向消息隊列發(fā)送消息 #include (略)#define MSGKEY 92
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 招標文件建設方案(3篇)
- DB23-T2862-2021-鹽堿地水稻田生物炭應用技術規(guī)程-黑龍江省
- DB23-T2822-2021-露地板栗南瓜化肥農藥減施生產技術規(guī)程-黑龍江省
- 公司新人入職管理制度
- 培訓行業(yè)培訓管理制度
- 初中孩子獎罰管理制度
- 內部培訓教師管理制度
- 工會財務出納管理制度
- 培訓機構產品管理制度
- 混凝土場地裝修方案(3篇)
- 美國知識產權法
- 2024年6月浙江省普通高校招生選考高考信息技術真題及答案
- 中國骨質疏松診治指南新
- 2025年鄉(xiāng)文化站半年工作總結樣本(2篇)
- 品質的管理制度
- 2025新版保密法知識考試題庫(含參考答案)
- 養(yǎng)老院安全工作小組及其職責與規(guī)范
- 2023年北京朝陽區(qū)初二期末下數學試卷含答案解析
- 烹飪原料知識試題庫(附答案)
- 《網絡安全保險 風險量化評估指南》
- 乳腺癌患者化療個案護理
評論
0/150
提交評論