java網(wǎng)絡(luò)編程試卷及復(fù)習(xí)資料_第1頁
java網(wǎng)絡(luò)編程試卷及復(fù)習(xí)資料_第2頁
java網(wǎng)絡(luò)編程試卷及復(fù)習(xí)資料_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

A1、 Java網(wǎng)絡(luò)程序位于TCP/IP參考模型的哪一層?(B)a)網(wǎng)絡(luò)層互聯(lián)層b)應(yīng)用層c)傳輸層網(wǎng)絡(luò)d)主機(jī)-網(wǎng)絡(luò)層

2、以下哪些協(xié)議位于傳輸層?(AD)a)TCPb)HTTPc)SMTPd)UDPf)IP

3、一個服務(wù)器進(jìn)程執(zhí)行以下代碼:ServerSocketserverSocket=newServerSocket(80);Socketsocket=serverSocket.accept();

intport=socket.getPort();以下哪些說法正確?(ACD)a)服務(wù)器進(jìn)程占用80端口。b)socket.getPort()方法返回服務(wù)器進(jìn)程占用的本地端口,此處返回值是80。c)當(dāng)serverSocket.accept()方法成功返回,就表明服務(wù)器進(jìn)程接收到了一個客戶連接請求。d)socket.getPort()方法返回客戶端套節(jié)字占用的本地端口。4、在客戶/服務(wù)器通信模式中,客戶與服務(wù)器程序的主要任務(wù)是什么?(BC)a)客戶程序在網(wǎng)絡(luò)上找到一條到達(dá)服務(wù)器的路由。b)客戶程序發(fā)送請求,并接收服務(wù)器的響應(yīng)。c)服務(wù)器程序接收并處理客戶請求,然后向客戶發(fā)送響應(yīng)結(jié)果。d)如果客戶程序與服務(wù)器都會保證發(fā)送的數(shù)據(jù)不會在傳輸途中丟失。1、B2、AD3、ACD4、BC二、填空題(郵件)1、名詞解釋SMTP:()2、主要的SMTP命令SMTP命令說明()指明郵件發(fā)送者的主機(jī)地址()指明郵件接收者的郵件地址()表示接下來將發(fā)送郵件內(nèi)容1、簡單郵件傳輸協(xié)議2、HELP/EHLOMAILFROMECPTTODATA三、簡答題(線程池)寫出五種使用線程池時應(yīng)注意的事項,并進(jìn)行簡要說明?線程池可能會帶來種種風(fēng)險:1.死鎖2.系統(tǒng)資源不足3.并發(fā)錯誤4.線程泄漏5.任務(wù)過載使用線程池時需要遵循以下原則:(1)如果任務(wù)A在執(zhí)行過程中需要同步等待任務(wù)B的執(zhí)行結(jié)果,那么任務(wù)A不適合加入到線程池的工作隊列中。(2)如果執(zhí)行某個任務(wù)時可能會阻塞,并且是長時間的阻塞,則應(yīng)該設(shè)定超時時間,避免工作線程永久的阻塞下去而導(dǎo)致線程泄漏。(3)根據(jù)任務(wù)的特點,對任務(wù)進(jìn)行分類,然后把不同類型的任務(wù)分別加入到不同線程池的工作隊列中,這樣可以根據(jù)任務(wù)的特點,分別調(diào)整每個線程池。(4)調(diào)整線程池的大小。線程池的最佳大小主要取決于系統(tǒng)的可用CPU的數(shù)目以及工作隊列中任務(wù)的特點。(5)避免任務(wù)過載。四、JAVA對客戶程序的通信過程進(jìn)行了抽象,提供了通用的協(xié)議處理框架,請用UML圖顯示客戶端協(xié)議處理框架的主要對象模型。(20分)五、編程題用JAVA編寫客戶、服務(wù)器程序(利用ServerSocket與Socket編寫)創(chuàng)建EchoServer(寫出主要程序代碼并注釋2、輸出流輸入流通用方法3、EchoServer類最主要方法為service()方法,寫出其方法中的代碼。4、寫出創(chuàng)建EchoClient的構(gòu)造方法5、EchoClient類中,最主要的方法為talk()方法,寫出其方法源代碼。publicEchoServer()throwsIOException{serverSocket=newServerSocket(port);System.out.println("服務(wù)器啟動");}privatePrintWritergetWriter(Socketsocket)throwsIOException{OutputStreamsocketOut=socket.getOutputStream();returnnewPrintWriter(socketOut,true);}privateBufferedReadergetReader(Socketsocket)throwsIOException{InputStreamsocketIn=socket.getInputStream();returnnewBufferedReader(newInputStreamReader(socketIn));}publicvoidservice(){while(true){Socketsocket=null;try{socket=serverSocket.accept();//等待客戶連接System.out.println("Newconnectionaccepted"+socket.getInetAddress()+":"+socket.getPort());BufferedReaderbr=getReader(socket);PrintWriterpw=getWriter(socket);Stringmsg=null;}publicEchoClient()throwsIOException{socket=newSocket(host,port);}B一選擇題下列各題A、B、C、D四個選項中,只有一個選項是正確的。請將正確的結(jié)果打√

1、問題:關(guān)于ServerSocket構(gòu)造方法的backlog參數(shù),以下哪些說法是正確的?(abdf)

a)backlog參數(shù)用來顯式設(shè)置操作系統(tǒng)中的連接請求隊列的長度。b)如果沒有設(shè)置backlog參數(shù),那么連接請求隊列的長度由操作系統(tǒng)決定。c)當(dāng)服務(wù)器端的連接請求隊列已滿,客戶端就無法建立與服務(wù)器的連接。d)如果backlog參數(shù)的值大于操作系統(tǒng)限定的隊列的最大長度,那么backlog參數(shù)被忽略。e)連接請求隊列直接由ServerSocket創(chuàng)建并管理。f)ServerSocket的accept()方法從連接請求隊列中取出連接請求。

2、問題:對于以下程序代碼:

ServerSocketserverSocket=newServerSocket(8000);serverSocket.setReuseAddress(true);哪個說法是正確的?(C)a)以上代碼運(yùn)行時出錯b)以上代碼編譯時出錯c)以上代碼盡管編譯與運(yùn)行不會出錯,但對SO_REUSEADDR選項的設(shè)置無效d)以上說法都不正確3、如何判斷一個ServerSocket已經(jīng)與特定端口綁定,并且還沒有被關(guān)閉?(B)a)booleanisOpen=serverSocket.isBound();b)booleanisOpen=serverSocket.isBound()&&!serverSocket.isClosed();c)booleanisOpen=serverSocket.isBound()&&serverSocket.isConnected();d)booleanisOpen=!serverSocket.isClosed();4、問題:對于以下代碼:intn=socketChannel.read(byteBuffer);//假定n>=0byteBuffer.flip();假定執(zhí)行socketChannel.read(byteBuffer)方法前,byteBuffer的容量、極限與位置分別為c、l與p,執(zhí)行完以上代碼后,byteBuffer的容量、極限與位置分別是多少?Ba)容量為c,極限為l,位置為p+nb)容量為c,極限為p+n,位置為0c)容量為l,極限為p+n,位置為0d)容量為c,極限為p+n,位置為p+n5、問題:線程執(zhí)行Selector對象的select(longtimeout)方法時進(jìn)入阻塞狀態(tài),在哪些情況,線程會從select()方法中返回?(abde)a)至少有一個SelectionKey的相關(guān)事件已經(jīng)發(fā)生。b)其他線程調(diào)用了Selector對象的wakeup()方法。c)與Selector對象關(guān)聯(lián)的一個SocketChannel對象被關(guān)閉。d)當(dāng)前執(zhí)行select()方法的線程被其他線程中斷。e)超出了等待時間。6、問題:在HTTP響應(yīng)結(jié)果中,哪個狀態(tài)代碼表示響應(yīng)成功?選項:Da)404 b)405 c)500 d)2007、問題:對于HTTP的GET請求方式,用戶提交的表單數(shù)據(jù)位于HTTP請求的哪一部分?A選項:a)請求頭中b)請求正文中一、選擇題1、abdf2、c3、b4、b5、abde6、d7、a二、JAVA對客戶程序的通信過程進(jìn)行了抽象,提供了通用的協(xié)議處理框架,請用UML圖顯示客戶端協(xié)議處理框架的主要對象模型。三、填空題HTTP協(xié)議規(guī)定,HTTP請求由3部分構(gòu)成,分別是:請求:請求方式、URI、HTTP協(xié)議版本請求頭請求正文與HTTP請求相似,HTTP響應(yīng)也由3部分構(gòu)成,分別是:響應(yīng):HTTP協(xié)議版本、狀態(tài)代碼、描述響應(yīng)頭響應(yīng)正文四、編程題創(chuàng)建非阻塞的EchoServer1、處理接收連接就緒事件2、處理讀就緒事件3、處理寫就緒事件4、編碼與解碼5、在非阻塞模式下確保發(fā)送一行數(shù)據(jù)6、刪除ByteBuffer中的已處理數(shù)據(jù)//創(chuàng)建一個Selector對象selector=Selector.open();//創(chuàng)建一個ServerSocketChannel對象serverSocketChannel=ServerSocketChannel.open();//使得在同一個主機(jī)上關(guān)閉了服務(wù)器程序,緊接著再啟動該服務(wù)器程序時,//可以順利綁定到相同的端口serverSocketChannel.socket().setReuseAddress(true);//使ServerSocketChannel工作于非阻塞模式serverSocketChannel.configureBlocking(false);//把服務(wù)器進(jìn)程與一個本地端口綁定serverSocketChannel.socket().bind(newInetSocketAddress(port));publicvoidservice()throwsIOException{serverSocketChannel.register(selector,SelectionKey.OP_ACCEPT);while(selector.select()>0){//第一層while循環(huán)SetreadyKeys=selector.selectedKeys();//獲得Selector的selected-keys集合Iteratorit=readyKeys.iterator();while(it.hasNext()){//第二層while循環(huán)SelectionKeykey=null;try{//處理SelectionKeykey=(SelectionKey)it.next();//取出一個SelectionKeyit.remove();//

溫馨提示

  • 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

提交評論