JAVA高級(jí)網(wǎng)絡(luò)編程(作業(yè)集)_第1頁
JAVA高級(jí)網(wǎng)絡(luò)編程(作業(yè)集)_第2頁
JAVA高級(jí)網(wǎng)絡(luò)編程(作業(yè)集)_第3頁
JAVA高級(jí)網(wǎng)絡(luò)編程(作業(yè)集)_第4頁
JAVA高級(jí)網(wǎng)絡(luò)編程(作業(yè)集)_第5頁
已閱讀5頁,還剩74頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第1章「1節(jié)測(cè)試題

一.單選題

1:IP地址能唯一地確定Internet上每臺(tái)計(jì)算機(jī)與每個(gè)用戶的

(A)距離

(B)費(fèi)用

(C)位置

(D)時(shí)間

答案

C

2:IPv4地址由_____位二進(jìn)制數(shù)組成。

(A)16

(B)32

(C)64

(D)128

答案

B

3:當(dāng)前因特網(wǎng)IP的版本是o

(A)IPV6

(B)IPV5

(C)IPV4

(D)IPV3

答案

C

4:www.cugnc.com是Internet中主機(jī)的。

(A)硬件編碼

(B)密碼

(C)軟件編碼

(D)域名

答案

D

5:在Internet中,主機(jī)的IP地址與域名的關(guān)系是。

(A)IP地址是域名中部分信息的表示

(B)域名是IP地址中部分信息的表示

(C)IP地址和域名是等價(jià)的

(D)IP地址和域名分別表達(dá)不同含義

答案

C

6:J2EE不支持的網(wǎng)絡(luò)協(xié)議是o

(A)Telnet

(B)WAP

(C)FTP

(D)HTTP

答案

B

7:提供不可靠傳輸?shù)膫鬏攲訁f(xié)議是0

(A)TCP

(B)IP

(C)UDP

(D)PPP

答案

C

8:TCP協(xié)議稱為o

(A)網(wǎng)際協(xié)議

⑻傳輸控制協(xié)議

(C)Network內(nèi)部協(xié)議

(D)中轉(zhuǎn)控制協(xié)議

答案

B

9:傳輸控制協(xié)議/網(wǎng)際協(xié)議即,屬工業(yè)標(biāo)準(zhǔn)協(xié)議,是Internet采用的主要協(xié)議。

(A)Telnet

(B)TCP/IP

(C)HTTP

(D)FTP

答案

B

10:LAN通常是指o

(A)廣域網(wǎng)

(B)局域網(wǎng)

(C)資源子網(wǎng)

(D)城域網(wǎng)

答案

B

11:TCP/IP協(xié)議是Internet中計(jì)算機(jī)之間通信所必須共同遵循的一種。

(A)信息資源

⑻通信規(guī)定

(C)軟件

(D)硬件

答案

B

12:域名服務(wù)DNS的主要功能為-

(A)通過請(qǐng)求及回答獲取主機(jī)和網(wǎng)絡(luò)相關(guān)信息

(B)查詢主機(jī)的MAC地址

(C)為主機(jī)自動(dòng)命名

(D)合理分配IP地址

答案

A

13:用于解析域名的協(xié)議是0

(A)HTTP

(B)DNS

(C)FTP

(D)SMTP

答案

B

14:合法的IP地址是

(A)202:114:200:202

(B)202.714.100.202

(C)202,114,200,202

(D)202.114.200.202

答案

D

二.問答題

1:IP地址的概念和作用是什么?

答案

IP地址:用句點(diǎn)分割的四組數(shù)字,每組數(shù)字由8位二進(jìn)制組成,用于辨別和確定網(wǎng)絡(luò)中應(yīng)

用程序所要連接的計(jì)算機(jī),因特網(wǎng)通過IP地址唯一標(biāo)識(shí)網(wǎng)絡(luò)中的每臺(tái)計(jì)算機(jī)。

2:域名的定義是什么,并舉例說明域名?

答案

域名是Internet網(wǎng)絡(luò)上的一個(gè)服務(wù)器或一個(gè)網(wǎng)絡(luò)系統(tǒng)的名字,在全世界,沒有重復(fù)的域

名。域名的形式是以若干個(gè)英文字母或數(shù)字組成,由分隔成幾部分,如www.sina.com.

cn就是一個(gè)域名。

3:舉出至少三項(xiàng)Java支持的因特網(wǎng)的應(yīng)用層協(xié)議?

答案

Java支持的因特網(wǎng)的應(yīng)用層協(xié)議包括:FTP(文件傳輸協(xié)議)、HTTP(超文本傳輸協(xié)議)、

Telent(遠(yuǎn)程終端協(xié)議)、SMTP(簡(jiǎn)單郵件傳送協(xié)議)。

三.問答題

1:用Java語言編寫程序,根據(jù)域名www.263.com查找服務(wù)器IP地址并顯示。

答案

1.

importjava,netInetAddress(

importjava.net.UnknownHostException?

publicclassGetIP(

publicstaticvoidmHin(String[Jargs)(

try(

InetAddressad=InetAddress.getByName("www.263.com")?

System,outprindnCad)\?

)

catch(UnknownHostExceptione){

System,out.println(e.toString())i

)

2:用Java語言編寫程序,得到本機(jī)的主機(jī)名并顯示。

答案

2.

imponjavo<net.InetAddress)

importjava.net.UnknownHostExceptioni

publicclassGetHostName(

publicstaticvoidmain(String[Jargs){

、try{

InetAddressname=InetAddress.getByName(,r127.0.0.1**);

System.out.println("主機(jī)名:M4-name.getHostName())?

)

catch(UnknownHostExceptione){

System,out.printin(e.toStringO)?

}

第1章「2節(jié)測(cè)試題

一.單選題

1:URL的意思是o

(A)統(tǒng)一資源定應(yīng)葉

(B)Internet協(xié)議

(C)簡(jiǎn)單郵件傳輸協(xié)議

(D)傳輸控制協(xié)議

答案

A

2:統(tǒng)一資源定位器的英文縮寫是

(A)UPS

(B)ULR

(C)URL

(D)USB

答案

C

3:Web頁通常包含轉(zhuǎn)到其他Web頁或其他Web站點(diǎn)的指針鏈路,稱為。

(A)ISP

(B)IP地址

(C)超級(jí)鏈接

(D)統(tǒng)一資源定位器

答案

C

4:HTTP的中文意思是0

(A)布爾邏輯搜索

(B)電子公告牌

(C)文件傳輸協(xié)議

(D)超文本傳輸協(xié)議

答案

D

5:URL的含義是o

(A)信息資源在網(wǎng)上什么位置和如何訪問的統(tǒng)一的描述方法

(B)信息資源在網(wǎng)上什么位置及如何定位尋找的統(tǒng)一的描述方法

(C)信息資源在網(wǎng)上的業(yè)務(wù)類型和如何訪問的統(tǒng)一的描述方法

(D)信息資源的網(wǎng)絡(luò)地址的統(tǒng)一的描述方法

答案

D

6:一個(gè)URL地址為:http://www.jsu.edu.cn:80/local/index,html,則其中www.jsu.e

du.cn的含義為

(A)通信協(xié)議

(B)參考點(diǎn)

(C)主機(jī)名稱

(D)通信端口

答案

c

7:下列組件可以為其設(shè)置布局管理器。

(A)JDialog

(B)JFrame

(C)JWindow

(D)JPanel

答案

D

二.問答題

1:URL的定義是什么?由哪幾部分組成?

答案

URL的定義:統(tǒng)一資源定位器。

URL的組成:URL包括兩部分內(nèi)容,協(xié)議名和資源名;資fe名又包括主機(jī)名,端口號(hào),文件

路徑。

2:寫出URL地址的基本格式,列出至少兩種URL地址并給出實(shí)例。

答案

URL地址格式排列為:scheine://host:port/path或協(xié)議:〃主機(jī)名:端口號(hào)/文件路徑

以下是3類URL及其實(shí)例:

文件URL

用URL表示文件時(shí),服務(wù)器方式用file表示,后面要有主機(jī)IP地址、文件的存取路徑(即

目錄)和文件名等信息。

例:file:///E:/Xun1ei/ThinkandGrowRich.pdf.

網(wǎng)絡(luò)新聞URL利用URL表示網(wǎng)絡(luò)新聞組時(shí),如果是Usenet的話只婆指荒出新聞組的名字即

可。

例:news:sina.gardening

HTTPURL

使用超級(jí)文本傳輸協(xié)議HTTP,提供超級(jí)文本信息k#的資源。

例:http://www.nwpu.edu.cn/index,html

3:寫出URL的兩個(gè)構(gòu)造函數(shù)。

答案

3.publicURL(Stringstr)publicURLCStringpro,Stringhost,intport.StringHie)

throws

MalforedURLExceptionthrowsMalforedURLException

三.問答題

1:程序功能:應(yīng)用JavaApplet技術(shù),在網(wǎng)頁中顯示一列有四個(gè)選項(xiàng)的菜單,用戶用鼠標(biāo)點(diǎn)

擊相應(yīng)網(wǎng)站的名稱,則跳轉(zhuǎn)至相應(yīng)網(wǎng)站。程序分為Java部分和HTML部分。

importjava,awe,*i

importjavax.swing.?i

importjavaxswing,event.**

importjava.utiLHashMapi

importjava.net.??

importjava,appletAppktContextj

publicclassBrowsePageextends{

HashMapsitesj

JListnamelist?

StringnameEJ={"sina"Jsohu”."163"?"yahoo"};

URLurl口=newURLC4],

*

publicvoidinitO!

try{.

url[0j=newURL(rhnp://www.sina.com.can)i

urlCl]=newURL(rthttp://www.sohu,com**)i

tiH£2]=newURL("http://www.163.8m")j

url[3j=newURL("http://www.yahookCOOLcn*1)i

]

catch(^>{

System,outpnndnte.toStringC));

}

sites—newHashMap。$

£or(inti==OjiVname.length近++乂

sites.put(name[iJfUrlCi])?

)

Containercontainer=getContentPaneOi

container,add(newJLabel(°pleaseselectwebthatyouwant”)>

BordcrLayoutNORTH))

namelist=newJLht(name){

container.add(newJScrollPane(namelist)?BorderLayoutCENTER)?

namelistaddListSelectionListener(newMyJlistOJi

)

classMyjlistimplementsListSelectionListener<

publicvoidvalueChanged(ListSelectionEveatevent){

Objectobject—namelist.i

URLcontext=(URL)i

AppletContextbrowser=getAppletContextO?

Java部分:

browser.showDocumenrCcontextr\b!ank*,)i

HTML部分

pagel</title>;

<body>

appletcode=**.10widths?*200**height—**100

<Z/applet>

</body>

答案

Java部分:

imponJava.awt.*$

importjavax,swing.*1

importjava工swing,event.?1

importjava?utilHashMapi

importjava,net*j

importjava,appletAppletContexc^

publicclassBrowsePageextendsJApplet{

Ha^hMapsitesi

JListnamelist?

Stringnamed口("sina"Jsohu"J163”/yahoo"},

URLurl口=newURLE4jj

publicvoidttut(){

try1

=newURL("http://www.sina?com.cn',)i

url[l]=newURLC,httpr//www.sohu.com")j

url[2]=newURL("http"/www.163.com"),

1

url[31=newURL(*httpx//www.yahoo,com,cn*)?

)^、

catchCMalforniedURLExceptione){

System,out.println(e.toStringO)?

}

sites=newHashMapOi

for(tuti=<hiVname,lengthM++){

sites.put(nameCi]?url[ij)j

}

Containercontainer=getContentPaneOi

container,add(newJLabelCpleasesdectwebthatyouwant")?

BorderLayout,NORTH)?

namelist=newJList(name):

container.addCnewJScrollPaneCnamelist)?BorderLayout.CENTER))

namelistaddListSelectionListener(newMyjlist())i

)

classMyjlistimplementsListSelecdonListsierl

pubHcvoidvalueChanged(ListSelectionEventevent)(

Objectobject=namelistgetSeleqtedValue。.

URLcontext—《URL)8i-et《QHgct),

AppletContextbrowser=getAppletContextO?

browser,showDocument(context?*.blank*').

}

}

)

HTML部分

<htmE>

<title>pagel</title>

<body>

〈appletcode="BewsePage.class"width-'^OO11height-T,100w>

</applet>

</body>

</htmE>

2:以JavaSwing技術(shù)制作web瀏覽器,在文本框中輸人URL并按回車鍵,即可跳轉(zhuǎn)到指定

importjava.awt.*;

importjava.awt.event.??

importjavajuswing.*?

...,...

importjavax.swing,event.*<

importjava.io.*r

importjava,net.*.

publicclassMyBrowserextendsJFrame{

JLabeljLabeli

JTextFieldM

JEditorPanecontent>

publicMyBrowserO{

super。我的瀏覽霜

Containercon=getComentPaneO>

jLabel=newJLabeK”輸入便接的網(wǎng)址Jh

tf=newJTextFieldC***)5

tf.addActionListenerCnewMyFieldDealingC>);

JPanelpanel=newJPanelO1

panehsetLayout(newGridLayoutC

panel.add(jL&bel)1

paneladd(rf).

cortadd(panel?BotckrLayoutNORTH)j

content=newJEdiwrPaneO?

H,「??

concent.setEditable(false)1

concent,addHyperlinkListener(newMyHyperList&eiC>)>

,,.,.?.一

con.add(newJScrollPaneCtonteuO?1

setSize(400,300)i、.(

setVisibleC)?''?、、..

網(wǎng)頁。

voidgerThePage(Stringsite){

tty(

content.setPage(sitc)i

)

catch(lOExceptionex){

JOptionPane.showMessageDialog(this,"連接錯(cuò)誤J"錯(cuò)誤提示”,

JOptionPane.ERROR.MESSAGE),

)

},?

classMyFieldDealingimplementsActionListener{

publicvoidactionPerformedCActionEvente){

Stringstr-,〃獲得用戶輸入的URL

igetThePage(str)?*.',、,

)"

)、

classMyHyperLtstnerimplements{〃監(jiān)聽網(wǎng)頁內(nèi)的鏈接

publicvoMhyperlinkUpdateCHyperlinkEvente)(

iKe.getEventTypeO=—HyperlinkEventEventType.ACTIVATED)!

Stringstr=vgetURLO.toStringQj〃獲得點(diǎn)擊的鏈接

,〃在容器內(nèi)顯示新傕接的內(nèi)容

publicstaticvoidmain(String[]a唔s){

MyBrowsermb=newMyBrowserO//生成新的對(duì)象

mb.setDefaultCloaeOperation(JFrame.EXIT_ON_CLOSE)(

)

答案

2.

importjava.awt.*i

importjava.awt.event.*)

importjavax.swing.*1

importjavax.swing,event,*)

importjava.io??$

importjava.net.*$

publicclassMyBrowserextendsjFrame{

JLabeljLabeh

JTextFieldtf;

JEditorPanecontentj

publicMyBrowser。{

super("我的瀏覽轄

Containercon=gecContentPaneO;

jLabel=newJLabe】。輸入鏈接的網(wǎng)址J”

tf=newJTcxtField("“h

tf.addActionListener(newMyFieldDealingO)i

JPane!panel=newJPanelO)

panel.setLayout(riewGridLayout(2.D);

panel,add(jLabel);

panel,add(tf);

con.add《panel.BorderLayoutNORTH)9

content=newJExiitorPaneO>

content.setEditab】e(false),

content.addHyperitnkListenerCnewMyHyperListnerO)?

COILadd(newJScroIlPaneCcontent),BoqderL4yQut.CENTER);

setSize(400,300)j.

setVisible(true)i

voidgetThePageCStringsite){

try(

content.setPage(site)i

}

catch(lOExceptionex){

JOptionPane.showMessageEHak>g(thisJ連接錯(cuò)誤?!卞e(cuò)誤提示J

JOptionPane.ERROR_MESSAGE)?

)

)

classMyFieldDealingimplementsActionListener(

publicvoidactionPerformed(ActionEvente){

Stringstr=tf.gnText。"/獲得用戶輸入的URL

getThePage(str)i

]

)

classMyHyperListnerimplementsHyggrlin^L吐竺net{〃監(jiān)聽網(wǎng)頁內(nèi)的自接

publicvoidhyperlinkUpdate(HyperlinkEvente)<

if《&getEventType()=—HyperlinkEventEventType.ACTIVATED){

Stringstr=e.getURLO.toStringO,〃獲得點(diǎn)擊的連接

getThePage(str)"/在容器內(nèi)顯示新連接的內(nèi)容

publicstaticvoidmain(String[]args){

MyBrowsermb=newMyBrowser。"/生成新的對(duì)象

mb.setDefaultCloseOperationCJFrame.EXIT_ON_CLOSE)i

第1章1-3節(jié)測(cè)試題

一.多選題

1:下面正確的創(chuàng)建Socket的語句有

(A)Socketa=newSocket(80)

(B)Socketb=newSocket(〃130.3.4.5〃,80)

(C)ServerSocketc=newSocket(80)

(D)ServerSocketd=newSocket(〃130,3.4.5〃,80)

答案

BC

2:下面的語句創(chuàng)建一DatagramSocket對(duì)象,是正確的。

(A)DatagramSocketa=newDatagramSocket()

(B)DatagramSocketb=newDatagramSocket(80)

(C)DatagramSocketc=newDatagramSocketCz,127.0.0.1〃,70)

(D)DatagramSocketd=newDatagramSocketCz,127.0.0.1^)

答案

ABC

3:在服務(wù)器www.openlab.com.cn上提供了基于TCP的時(shí)間校對(duì)服務(wù),該應(yīng)用使用port為1

3o創(chuàng)建連接到此服務(wù)器的語句是。

(A)Sockets==newSocket("www.openlab.com.cn”,13);

(B)Sockets=newSocket(z/www.openlab.com.cn:13");

(C)Sockets=accept("www.openlab.com.cn”,13);

(D)Sockets=accept(":13");

答案

A

二.填空題

1:套接字分為和兩種類型。

答案

流式套接字。數(shù)據(jù)報(bào)套接字

2:創(chuàng)建一個(gè)tcp客戶程序的順序是0(1)獲得I/O流⑵關(guān)閉I/O流⑶對(duì)I/O流進(jìn)行

讀寫操作(4)建立socket(5)關(guān)閉socket

答案

41325

3:創(chuàng)建一個(gè)tcp服務(wù)程序的順序是。(1)創(chuàng)建一個(gè)服務(wù)線程處理新的連接⑵創(chuàng)建

一個(gè)服務(wù)器socket⑶從服務(wù)器socket接受客戶連接請(qǐng)求⑷在服務(wù)線程中,從socket

中獲得I/O流(5)對(duì)I/O流進(jìn)行讀寫操作,完成與客戶的交互(6)關(guān)閉socket(7)關(guān)閉I/O

答案

2314576

4:創(chuàng)建線程(Thread)的方式有兩種,一種是繼承類,另一種是實(shí)現(xiàn)接口—

_o啟動(dòng)線程的方法是。線程啟動(dòng)后運(yùn)行的是______里的代碼。(l)run(2)Th

read(3)Runnable(4)start

答案

2341

三.問答題

1:套接字的概念是什么?

答案

套接字是兩個(gè)程序進(jìn)行通信連接的一個(gè)斷電,一個(gè)程序?qū)⒁欢涡畔懭胩捉幼种?,該?/p>

接字將這段信息發(fā)送到另一個(gè)套接字中,使這段信息能傳送到其他程序。

2:敘述客戶機(jī)和服務(wù)器通信的典型執(zhí)行過程:

答案

服務(wù)器監(jiān)聽相應(yīng)端口的輸入

客戶機(jī)發(fā)出一個(gè)請(qǐng)求

服務(wù)器接收到請(qǐng)求

服務(wù)器處理這個(gè)請(qǐng)求,并將結(jié)果返回給客戶機(jī)

3:創(chuàng)建客戶端套接字的兩種構(gòu)造方法是什么?寫出相處的異常處理方法。

答案

Socket(Stringhost,intport)

host為主機(jī)域名;port為端口號(hào)

異常處理有兩種情況:unknownHostExceptior^lHOEception

如果域名解釋過程中無法對(duì)應(yīng)IP則拋出未知主機(jī)異常,如果套接字打不開則拋出輸人輸

出異常。

Socket(InetAddresshost,intport)

host為主機(jī)域名;port為端口號(hào)

異常處理:lOEception

主機(jī)地址如果直接采用IP方式給出,則不需要域名的轉(zhuǎn)換,也就不會(huì)拋出未知主機(jī)異常。

4:客戶端套接字讀寫數(shù)據(jù)的方法是什么?

答案

讀數(shù)據(jù):InputStreamgetInputStream()

寫數(shù)據(jù):OutputStreamgetOutputStream()

5:簡(jiǎn)述多線程程序的基本原理。

答案

多線程是這樣一種機(jī)制,它允許在程序中并發(fā)執(zhí)行多個(gè)指令流,每個(gè)指令流都稱為一個(gè)

線程,彼此間互相獨(dú)立。

多個(gè)線程的執(zhí)行是并發(fā)的,也就是在邏輯上“同時(shí)”,而不管是否是物理上的“同時(shí)”。

如果系統(tǒng)只有一個(gè)CPU,那么真正的“同時(shí)”是不可能的,但是由于CPU的速度非??欤?/p>

用戶感覺不到其中的區(qū)別,因此我們也不用關(guān)心它,只需要設(shè)想各個(gè)線程是同時(shí)執(zhí)行的

即可。

四.問答題

1:編寫服務(wù)器、客戶機(jī)程序,完成用戶從客戶機(jī)向服務(wù)器發(fā)送圓的半徑,服務(wù)器計(jì)算后

向客戶機(jī)發(fā)送結(jié)果,結(jié)果如效果圖1.1,1.2所示。

答案

客戶機(jī)程序

importjava.io.?j

importjava.net.?i

publicclassClient{

publicstaticvoidmain《String1]args){

try(

SocketconnectToServer-newSocketlocalhost'*,5500)>

DatalnputStreaminFromServer=newDatalnputStreamC

conneccToServer.getlnputStream())i

DataOutputStreamoutToServer=newDataOutputSrream(

connectToServer.getOutputStream0)?

System.out.printing井輸出的半徑發(fā)送到服務(wù)器"h

System,our.printin("并輸入bye,則終止連接

Strings$

while(true){

System,out.printin("請(qǐng)輸入半徑J**>i

BuHeredReaderbr=newBuf£eredReader(

newInputStreamReaderOysteDKin))i

s=br.readLine。;

outToServer.writeUTF(s),

outToServerflu^hO$

Stringsl=inFromServer.readUTFO>

if(sl.equah(Mbye"))<

break,

}

System,out.printin("從服務(wù)器返回的計(jì)算結(jié)果;");

System,out.println(sl)<

)

inFromServer.close()?

outToServer.closeO;

connectToServer.closeOt

)

catch(lOExccptione){

&getStackTrsceOi

System,out,println(verrorn)i

}

服務(wù)器程序

importjava.io.#i

importjava,net,*;

publicclassServer{

publicstaticvoidmain(String1]args)(

try(

System.out.primln("建立連接并等待連接……

ServerSocketserverSocket=newServerSocket(5500)j

SocketconnectToCHent=serverSocket.accept()$

DatalnputStresminFromClient=newDaUlnputStrc&m(

connectToClicnt.getlnputStreamC))t

DataOutputStreamoutToClient=newDataOutputStream(

connectToClient.getOutputStream())j

Stringstr="";

doubleradius?

while(true){

str=inFromClient.readUTFC);

if(str.equalsC^bye1')){

outToClient.writeUTFC"bye")i

break}

)

radius—Double,parseDoubletstr);

System.out.ptintln("從客戶端接收的半徑「十radius);

doublearea=radius*radius*Math.Ph

doublevoiume=4*Math.Pl*radius*radius*radius/3;

Strings="半徑為"+radius+"圓的面積"+area+

”\n半徑為”+radius+,球的體積”十v&ume;

cutToClient,writeUTF(s)j

outToCIient.flush。$

System,"t.primlnC結(jié)果已求出并發(fā)送到客戶J)j

.}//whileend

inFromClient,close0,

outToClient.close。j

connectToClient.closeOj

}//tryend,

catch(lOExceptione){

System,out,primlnC'error“〉:

e.getStackTraceOj(

)

}

)

第1章「4節(jié)測(cè)試題

一.多選題

1:關(guān)于數(shù)據(jù)報(bào)通信(UDP)和流式通信(TCP)的論述,正確的有

(A)TCP和UDP在很大程度上是一樣的,由于歷史的原因產(chǎn)生了兩個(gè)不同的名字而已

(B)TCP和UDP在傳輸方式上是一樣的,都是基于流的,但是TCP可靠,UDP不可靠

(0TCP和UDP使用的都是IP層所提供的服務(wù)

(D)用戶可以使用UDP來實(shí)現(xiàn)TCP的功能

答案

CD

2:下列說法是正確的。

(A)UDP協(xié)議可以提供可靠的數(shù)據(jù)流傳輸服務(wù)

(B)UDP協(xié)議可以提供面向連接的數(shù)據(jù)流傳輸服務(wù)

(C)UDP協(xié)議可以提供全雙工的數(shù)據(jù)流傳輸服務(wù)

(D)UDP協(xié)議可以提供面向非連接的數(shù)據(jù)流傳輸服務(wù)

答案

D

3:在TCP/IP協(xié)議簇中,UDP協(xié)議工作在o

(A)應(yīng)用層

⑻傳輸層

(C)網(wǎng)間層

(D)網(wǎng)絡(luò)互聯(lián)層

答案

A

二.填空題

LTCP/IP的第四層有兩個(gè)協(xié)議,分別是TCP和UDP,TCP協(xié)議的特點(diǎn)是,UDP協(xié)議

的特點(diǎn)是0

答案

提供面向連接的路服務(wù)。提供無連接的數(shù)據(jù)報(bào)服務(wù)

2:客戶機(jī)/服務(wù)器模式的優(yōu)點(diǎn)之一是減少了網(wǎng)絡(luò)的流量,原因是。

答案

只傳遞必要的信息

3:電子郵件中的兩個(gè)協(xié)議中,協(xié)議是運(yùn)行在傳輸程序與遠(yuǎn)程郵件服務(wù)器之間的

協(xié)議,協(xié)議是運(yùn)行在本地客戶端與郵件服務(wù)器之間的協(xié)議。

答案

SMTPoPOP

三.問答題

1:UDP數(shù)據(jù)報(bào)通信和部于TCP的套接字通信的主要區(qū)別是什么?

答案

對(duì)于數(shù)據(jù)報(bào),客戶機(jī)和服務(wù)器程序創(chuàng)建一個(gè)DatagramSocket(數(shù)據(jù)報(bào)套接字)。Data-gr

amSocket不是被動(dòng)等待建立連接的請(qǐng)求,而是以數(shù)據(jù)報(bào)的形式向指定位置發(fā)送數(shù)據(jù)信息。

四.問答題

1:根據(jù)運(yùn)行結(jié)果,以UDP通信技術(shù)設(shè)計(jì)UDP時(shí)間校對(duì)服務(wù)器,并以UDP客戶機(jī)訪問。執(zhí)行

c<C:\fIHD01S\syste>32\cMd.exe

XMpWork,Net^auaUDPTimeClient

臊務(wù)器發(fā)送的時(shí)間

工50日星期38:6:

XFlyWoi'k\MyNet>B

結(jié)果如圖1.3,1.4所示。圖1.3

|5C:\?IHD0IS\systeM32\c?d.exe-javaD?P...JEE!

服務(wù)器啟動(dòng)...

客戶地址:/i27.0.0.i客戶端口號(hào):4796□

廉塔肩尊津蝠客身通親時(shí)間服兔

船務(wù)瞽發(fā)送卻聞2007年5月150日孰38:6:3

KJ

圖1.4

答案

(1)服務(wù)器端程序

importjava.io.*j

importjava,net**j

importjava.util.*(

publicclassUDPTimeServer{

privatebyte[]buffer=newbyte[1024]>

privateDatagramPacketinPacket*outPacketi

privateDatagramSocketdatagramSocket;

publicUDPTimeServer()1

System.out.printbK”服務(wù)器啟動(dòng)..."h

try{

datagramSocket=newDatagramSockct(8800)i

while(true)^

inPacket=newDatagramPacketCbuffer?buffer,length)j

〃為接收數(shù)據(jù)準(zhǔn)備空間

datagramSocket.receive(iuPficket)>

〃接收數(shù)據(jù)JOExcepticn

InetAddressclientAddress-inPacketgetAddreasOi

intclientPort=inPacketgetPortOi

String3=newString(inPacket.getDataOt

0,inPacket.getLengthO)i

System,out.printin("客戶地址J+clientAddress+

'喀戶端口號(hào)J+clientPort)i

System,out.printin("收到客戶發(fā)送數(shù)據(jù)J+s):

outPacket=newDatagramPackeMbuffer,buffer,length,

clientAddress?clientPon),

outPacket.setDataCgetTimeO)(

datagramSacket.send(outPacket)i//lOException

s=newString(outPacket.getDataO,

09outPacket.getLengthO),

Systemout.println("服務(wù)器發(fā)送時(shí)間J+s):

}

)

catch(SocketExceptione)(

匕printStackTrace()j

)

catch(lOExceptione){

e.printStackTraceO>

publicbyte口getTimcO(

intyear,month▼day,weekday,hour*minute*secondi

Stringsi

Calendartime=Calendar.getlnstanccC))

year=time,get(Calendar,YEAR)?

month=time,get(Calendar.MARCH)+1、

〃月份禍要加1.西方從12月開始計(jì)算

day=time,get(Calendar.DAY_OF_YEAR);

weekday=time,get(Calendar.DAY_OF-WEEK)—11

〃星期偏要減1,星期日為開始

hour=time,get(Calendar.HOUR)i

minute—tim匕get(Calendar.MINUTE)(

second-time,get(Calendar,SECOND)?

s=year+“年”+mcnth+"月”+day+"日”+"星期x+weekday+

出"+hour+"J+minute+"J+second:

byte[]date=s.getBytesO)

returndate.

}

publicstaticvoidmain(StringQargs){

UDPTimeServertimeServer=newUDPTimeServerO?

(2)客戶端程序

importjava.io.*f

importjava,net?;

publicclassUDPTimeClient{

privatebyre[]buffer—newbyte[1024];

privateDatagramPacketoutPacket,inPscketi

privateDatagramSocketdatagramSocketF

privateInetAddresshostAddresst

publicUDPTimeClient(){

try<

datagramSocket-newDatagramSocket()t

hostAddress-InetAddress.getByName('*localhost1*);

outPacket-newDatagramPacket(buffert

buffer,length,hostAddress.8800〉j

String客戶請(qǐng)求時(shí)間服務(wù)。

outPacket.setData(s,getBytesC));

datagramSocker.send(outPacket)i

System?out.prindn(s),

System,out.primln("客戶端收到服務(wù)器發(fā)送的時(shí)間J');

inPacket=newDfitagramPacket(buffer?buffer,lengthT

hostAddress,8800);

datagramSocket.receiveCinPacket);

s=newString(inPacket.getDara()?0.inP&cket.getLengthO)i

System<out.prindn(s));

)

catch(UnknownHostExceptione){

e.printStackTrace()i

),

catch(SocketExceptione){

e.printStackTrace()]

}

catch(lOExceptione){

e.printStackTraceOj

}

}

'publicstaticvoidmain(String[]args){

newUDPTimeClient()?

第1章卜5節(jié)測(cè)試題

一.問答題

LReadTestFile類負(fù)責(zé)完成對(duì)文本文檔中信息的讀取,程序如下,要求繪制其UML圖。

importjava.沁.*;

publicclassReadTestFile(

privateBuHeredReaderbu(Reader;

publicStringcorrectAnswer:

publicintteatTitnej

privateStringcorrectAnswer)

publicReadTestFileC)throwslOExcepcion^

bufReader=newBuf(eredReader<newFi1eReader('*test,

Strings-bufReadenreadLtneC);

System,out.printing's="+s):

intil=s.indexOfC?');

inti2=s.indexOf(“分鐘”"

s=s.substring(il4-1?i2)s

System,out.println(ws=w+s)j

testTime=Integer.parselntCs)*60*1000?

s=bufRcader.readLineO.?

correctAnswer=s.substring(s.indexQK")+1)i

}

publicintgetTesxTime()<

returntestTimej

)、

publicStringgetCorrectAnswerC){

returncorrectAnswer?

}

publicStringgetTestQuestion(){

StringtestQuesxion=>r,*>

try{

StringBuffertemp=newStringBufferOi

Strings=">

if(bufReader|.—null){

while((s=bufReadcr.readLineO)!=null){

iKs.startsWhhC,*',))(

break)

temp.append("\n'*+s);

if(s.startsWith(.試題結(jié)束")乂

bu(Reader.close<)<

}

)

testQuestion-temp.toStringOj

)

}

catch(Exceptione){

testQuestion="試題結(jié)束"i

I

returntestQuestiom

答案

2:下列程序以javaawt技術(shù)和swing技術(shù)實(shí)現(xiàn)了圖形化界面構(gòu)造,請(qǐng)根據(jù)代碼及圖1.5

回答以下問題:

⑴界面中共包含了多少個(gè)變量JButton類,變量名分別是什么?

⑵界面中共包含了多少個(gè)變量JLabel類,變量名分別是什么,作用又是什么?

⑶界面中共包含了多少個(gè)變量JTextArea類,變量名分別是什么,作用又是什么?

(4)界面中共包含了多少個(gè)變量Chexkbox類,包含了幾個(gè)單項(xiàng)按鈕?

⑸監(jiān)聽按鈕點(diǎn)擊事件的響應(yīng)方法是什么?

importjava,awt*j

importjava.awt.event.*;

importjava兀swing.*i?

imponjava.io.*?

importjava.net.*i

publicclassTestPanelextendsJPanelimplementsActionListener>Runnable{

privateSocketconnectToServer;

privateDatalnputStreaminFromServeri

privateDataOutputStreamoutToServer?

privateThreadthread;

privateTimertestTimerj

privateinttestTitnej

privateJButtonstartButton;

privateJLabelUmeLabeb

privateJTextAreaquesdonArea;

privateCheckboxradioButtonE]-newCheckbox[401.

privateCheckbaxGroupbuttonGroup~newCheckboxGroupO;

privateJButtonanswerButton;

privateJButtonquestionButtont

privateJButtonscoreButtoni

publicTestPanel(luetAddressadd,intport){

initPanelGUK);

try(

connectToServer=newSocket(add,port)j

inFromServer=newDatalnputStreamC

connectTbServer.g?InputStream());

outToServer=newDataOutputStream(

connectToServer.getOutputStreamC))i

System*out.printlnCconnectToServer?getlnetAddressC))i

}.

catch(lOExceptione){

System,out.printlnC^TestPanel連接錯(cuò)誤”):

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論