第十七章 网络
一、判断题
1.已建立的URL对象不能被改变。(t) 2.UDP是面向连接的协议。(F )
3.进程利用socket建立与其他进程的连接。(T ) 4.服务器在一个端口等待客户的连接。( T) 5.数据报传输是可靠的,包按顺序先后达到。(F ) 6.Java的大部分网络类都包含在Java .applet包中。( F) 7.构成World Wide Web基础的关键协议是http协议。( T) 8.URL是统一资源定位器的缩写。(T ) 二、选择题
1.如果在关闭socket时发生一个I/O错误,会抛出▁a▁。 A.IOException
B.UnknownHostException C.SocketException
D.MalformedURLExceptin
2.当找不到客户的服务器地址时会抛出▁b▁。 A.IOException
B.UnknownHostException C.SocketException
D.MalformedURLExceptin
3.如果DatagramSocket构造函数不能正确地创建一个DatagramSocket,会抛出▁c▁。 A.IOException
B.UnknownHostException C.SocketException
D.MalformedURLExceptin
4.URL构成函数将决定作为参数的字符串是否是合法的统一资源定位器。如果合法,则初始化包含统一资源定位器的URL对象,否则将产生▁d▁。 A.IOException
B.UnknownHostException C.SocketException
D.MalformedURLExceptin
5.使用▁b▁类建立一个socket,用于不可靠的数据报的传输。 A.Applet
B.Datagramsocket C.InetAddress D.AppletContext
6.▁c▁类的对象中包含有Internet地址。 A.Applet
B.Datagramsocket C.InetAddress D.AppletContext
7.InetAddress类的getLocalHost方法返回一个▁c▁对象,它包含了运行该程序的计算机的
主机名。 A.Applet
B.Datagramsocket C.InetAddress D.AppletContext
8.下面▁cd▁类能够支持TCP/IP连接。 A.InetAddress B.Packet C.Socket
D.ServerSocket
9.▁b▁对象管理基于流的连接。 A.ServeSocker B.Socket C.Vector
D.DatagramSocket 三、简述题
1.URL对象有何作用?其中包含那4部分数据?URLConnection类与URL类有何异同?功能上有那些增强?
2.Java提供了流socket和数据报socket,流socket起到什么作用?数据报socket起到什么作用?
3.用一个Java建立一个简单的服务器需要几个步骤?
四、程序设计题
1.编写图形界面的Application程序,Server端和Client端各包含一个TextField和TextArea。请完成消息互发,在TextField中按下Enter键后消息被发送到对方的TextArea中。(参考课成中所讲的例子)
2.编写一个数据报通信程序,一端发送一个int型数据10000,另一端接收到发送的数据并将它打印在屏幕上。 import java.io.*; import java.applet.*; import java.awt.*;
import java.awt.event.*; import java.net.*;
public class ajay extends Applet implements ActionListener {public static void main(string args[]) { TextField t1; TextArea ta1; Button b1; DatagramSocket d; private String s1; }}
public void init() { neethi l=new neethi(); l.start(); try{d=new DatagramSocket(666);} cath(Exception e){} SetLayout(new FlowLayout()); ta1=new TextArea(\ add(ta1); t1.addActionListener(this); } public void actionPerformed(ActionEvent event) { int i; if(event.getSoure()==t1) { try{ byte b[]=new byte[1024]; s1=t1.getText(); t1.setText(\ for(i=0;i DatagramPacket(b,i,InetAddress.getByName(\ } catch(Exception e){} } class neethi extends Thread { public void run() { int c,j=0; try{ byte b[]=new byte[1024]; DatagramSocket d=new DatagramSocket(999); while(true) { DatagramPacket p=new DatagramPacket(b,1024); d.receive(p); } } ta1.append(new String(p.getData(),0,0,p.getLength())); ta1.append('\\n'+\} catch(Exception y){} } }