Java基礎(chǔ)案例教程(第2版)課后習題第9章 網(wǎng)絡(luò)編程及答案_第1頁
Java基礎(chǔ)案例教程(第2版)課后習題第9章 網(wǎng)絡(luò)編程及答案_第2頁
Java基礎(chǔ)案例教程(第2版)課后習題第9章 網(wǎng)絡(luò)編程及答案_第3頁
Java基礎(chǔ)案例教程(第2版)課后習題第9章 網(wǎng)絡(luò)編程及答案_第4頁
Java基礎(chǔ)案例教程(第2版)課后習題第9章 網(wǎng)絡(luò)編程及答案_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第9章 網(wǎng)絡(luò)編程一、填空題1.傳輸層主要使網(wǎng)絡(luò)程序進行通信,在進行網(wǎng)絡(luò)通信時,可以采用TCP協(xié)議,也可以采用________協(xié)議。2.在下載文件時必須采用________協(xié)議。3.JDK提供了一個________類,該類可以發(fā)送和接收DatagramPacket數(shù)據(jù)包。4.在JDK中提供了兩個用于實現(xiàn)TCP程序的類,一個是________類,用于表示服務(wù)器端;一個是Socket類,用于表示客戶端。ServerSocket5.當客戶端和服務(wù)端建立連接后,數(shù)據(jù)是以________的形式進行交互的,從而實現(xiàn)通信。IO流二、判斷題1.Socket類用于創(chuàng)建客戶端程序,當兩個Socket建立了專線連接后,連接的一端既能向另一端連續(xù)寫入字節(jié),也能從另一端讀取字節(jié)。2.在TCP程序中,ServerSocket類的實例對象可以實現(xiàn)一個服務(wù)器端的程序。3.DatagramSocket類中提供了accept()方法用于接收數(shù)據(jù)報包。4.byte[]buf=newbyte[1024];用于定義1024個字節(jié)數(shù)組的緩沖區(qū)。5.Socket類的getInputStream()返回一個InputStream類型的輸入流對象,如果該對象是由服務(wù)器端的Socket返回,就用于讀取服務(wù)端發(fā)送的數(shù)據(jù)。三、選擇題1.下列關(guān)于Socket類的描述中,錯誤的是(

)A、Socket類中定義的getInputStream()方法用于返回Socket的輸入流對象。B、Socket類中定義的getOutputStream()方法用于返回Socket的輸出流對象。C、Socket類中定義的getLocalAddress()方法用于獲取Socket對象綁定的本地IP地址。D、Socket類中定義的close()方法用于關(guān)閉輸入\輸出流對象。2.下列ServerSocket類的方法中,用于接收來自客戶端請求的方法是(

)A、accept()B、getOutputStream()C、receive()D、get()3.下列關(guān)于UDP協(xié)議特點的描述中,錯誤的是(

)A、在UDP協(xié)議中,數(shù)據(jù)的發(fā)送端和接收端不建立邏輯連接。B、UDP協(xié)議消耗資源小,通信效率高,通常都會用于音頻、視頻和普通數(shù)據(jù)的傳輸。C、UDP協(xié)議在傳輸數(shù)據(jù)時不能保證數(shù)據(jù)的完整性,因此在傳輸重要數(shù)據(jù)時不建議使用UDP協(xié)議。D、在UDP協(xié)議連接中,必須要明確客戶端與服務(wù)器端。4.下列說法中,錯誤的是(

)A、UDP在數(shù)據(jù)傳輸時,數(shù)據(jù)的發(fā)送端和接收端不建立邏輯連接。B、使用UDP協(xié)議傳送數(shù)據(jù)保證了數(shù)據(jù)的完整性。C、TCP協(xié)議是面向連接的通信協(xié)議。D、TCP連接中必須要明確客戶端與服務(wù)器端,由客戶端向服務(wù)端發(fā)出連接請求。5.在TCP/IP

網(wǎng)絡(luò)中,為各種公共服務(wù)和系統(tǒng)保留的端口號范圍是(

)A、0~65525B、0~1024C、0~1023D、0~80四、簡答題1.請簡述TCP通信與UDP通信的主要區(qū)別。UDP通信與TCP通信的區(qū)別在于,UDP中只有發(fā)送端和接收端,不區(qū)分客戶端與服務(wù)器端,計算機之間可以任意地發(fā)送數(shù)據(jù);而TCP通信是嚴格區(qū)分客戶端與服務(wù)器端的,在通信時,必須先由客戶端去連接服務(wù)器端才能實現(xiàn)通信,服務(wù)器端不可以主動連接客戶端,并且服務(wù)器端程序需要事先啟動,等待客戶端的連接。2.

請簡述TCP協(xié)議中服務(wù)端與客戶端連接過程。在TCP連接中必須要明確客戶端與服務(wù)器端,由客戶端向服務(wù)器端發(fā)出連接請求,每次連接的創(chuàng)建都需要經(jīng)過“三次握手”。第一次握手,客戶端向服務(wù)器端發(fā)出連接請求,等待服務(wù)器確認;第二次握手,服務(wù)器端向客戶端回送一個響應,通知客戶端收到了連接請求;第三次握手,客戶端再次向服務(wù)器端發(fā)送確認信息,確認連接。五、編程題使用基于UDP的JavaSocket編程,完成在線咨詢功能:(1)客戶向咨詢?nèi)藛T咨詢。(2)咨詢?nèi)藛T給出回答。(3)客戶和咨詢?nèi)藛T可以一直溝通,直到客戶發(fā)送bye給咨詢?nèi)藛T。第9章 網(wǎng)絡(luò)編程一、填空題1.UDP2.TCP3.DatagramSocket4.ServerSocket5.IO流二、判斷題1.對2.對3.錯4.對5.錯三、選擇題1.D2.A3.D4.B5.C四、簡答題1.UDP通信與TCP通信的區(qū)別在于,UDP中只有發(fā)送端和接收端,不區(qū)分客戶端與服務(wù)器端,計算機之間可以任意地發(fā)送數(shù)據(jù);而TCP通信是嚴格區(qū)分客戶端與服務(wù)器端的,在通信時,必須先由客戶端去連接服務(wù)器端才能實現(xiàn)通信,服務(wù)器端不可以主動連接客戶端,并且服務(wù)器端程序需要事先啟動,等待客戶端的連接。2.在TCP連接中必須要明確客戶端與服務(wù)器端,由客戶端向服務(wù)器端發(fā)出連接請求,每次連接的創(chuàng)建都需要經(jīng)過“三次握手”。第一次握手,客戶端向服務(wù)器端發(fā)出連接請求,等待服務(wù)器確認;第二次握手,服務(wù)器端向客戶端回送一個響應,通知客戶端收到了連接請求;第三次握手,客戶端再次向服務(wù)器端發(fā)送確認信息,確認連接。五、編程題AskServer.java/****在線客服咨詢?nèi)藛T**/publicclassAskServer{publicstaticvoidmain(String[]args){//創(chuàng)建DatagramSocket,發(fā)送接收數(shù)據(jù)都依賴他DatagramSocketsocket=null;try{socket=newDatagramSocket(8888);Scannerinput=newScanner(System.in);while(true){//準備一個空的數(shù)據(jù)包,用來接收數(shù)據(jù)byte[]buf=newbyte[1024];DatagramPacketpacket=newDatagramPacket(buf,buf.length);//接收數(shù)據(jù)使用空的數(shù)據(jù)包socket.receive(packet);//輸出信息Stringinfo=newString(packet.getData(),0, packet.getLength());System.out.println("客戶端請求:"+info);//判斷是否退出if("bye".equals(info)){break;}//發(fā)送數(shù)據(jù)Stringresult=input.nextLine();byte[]buf2=result.getBytes();DatagramPacketpacket2=newDatagramPacket(buf2, buf2.length,packet.getAddress(),packet.getPort());socket.send(packet2);}}catch(SocketExceptione){e.printStackTrace();}catch(IOExceptione){e.printStackTrace();}finally{//關(guān)閉socketsocket.close();}}}AskClient.java/****在線客服客戶**/publicclassAskClient{publicstaticvoidmain(String[]args){//創(chuàng)建DatagramSocket,發(fā)送接收數(shù)據(jù)都依賴他DatagramSocketsocket=null;try{socket=newDatagramSocket(9999);Scannerinput=newScanner(System.in);while(true){//準備要發(fā)送的數(shù)據(jù)Stringstr=input.nextLine();//bye//使用數(shù)據(jù)包把數(shù)據(jù)封裝起來byte[]buf=str.getBytes();DatagramPacketpacket=newDatagramPacket(buf,buf.length,InetAddress.getByName("192.168.1.252"),8888);//發(fā)送數(shù)據(jù)包socket.send(packet);//判斷是否退出if("bye".equals(str)){break;}//接收數(shù)據(jù)byte[]buf2=newbyte[1024];DatagramPacketpacket2=newDatagramPacket(buf2, buf2.length);socket.receive(packet2);System.out.println("服務(wù)器端反饋:"+ newString(packet2.getData(),0,packet2.getLength()));

溫馨提示

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

最新文檔

評論

0/150

提交評論