《Java网络编程》单元测验题 2
一、选择题(20分)
1、下列哪个对象管理基于流的连接。( B )
A. ServerSocket B. Socket C. Vector D. DatagramSocket
2、如果在关闭socket时发生一个I/O错误,会抛出( A )异常。
A.IOException B.UnknownHostException C.SocketException .MalformedURLExceptin
3、当不到客户的服务器地址时会抛出( B )异常。
A. IOException B.UnknownHostException
C.SocketException D.MalformedURLExceptin
4、如果DatagramSocket构造函数不能正确地创建一个DatagramSocket,会抛出( C )异常。
A.IOException B.UnknownHostException
C.SocketException D.MalformedURLExceptin
5、使用( B )类建立一个socket,用于不可靠的数据报的传输。
A.Applet B.DatagramSocket C.InetAddress D.AppletContext
二、填空题 (40分)
1、基于UDP的C/S编程,首先都要建立一个DatagramSocket对象,用来接收或发送数据报,然后使用DatagramPacket类对象 作为传输数据的载体。
2、TCP是Tranfer Control Protocol的简称,是一种面向连接的保证可靠传输的协议。
3、UDP是User Datagram Protocol的简称,是一种无连接的不可靠传输的协议。
4、UDP主要用于不需要TCP排序和流量控制能力而是自己完成这些功能的应用程序。
5、基于UDP的C/S编程,服务器端侦听到客户端的连接请求,ServerSocket类就会
通过accept()方法返回一个对应的服务器端Socket对象,以便进行直接通信。
6、Socket (InetAddress address, int port) 产生IOException异常 ,不抛出UnknownHostException异常。
7、DatagramSocket表示用于接收和发送UDP的Socket实例,即在程序之间建立传送数据报的通信连接。
8、构造函数ServerSocket(int port) 默认绑定运行服务程序主机的所有IP地址。
9、在网络中UDP协议与TCP协议一样用于处理数据包 。UDP协议直接工作于IP协议的顶层。
10、DatagramPacket类对象不但封装了要发送的 数据 ,还包含通讯双方的 IP地址和端口号 tcp ip协议中 。
11、PrintStream,它可以将Java的 基本数据类型 等数据,直接转换为系统默认编码下对应的字符,再输出至 OutputStream 中。
三、判断题(30分)
1、使用UDP传输数据时是有大小限制的,每个被传输的数据报必须限定在64KB之内。(T)
2、构造函数DatagramSocket( )通常用于客户端编程,它仅仅使用一个临时的监听端口。(T)
3、DatagramSocket用于在程序之间建立传送数据报的通信连接。(T)
4、Java程序定位和网络数据检索最简单的方法是使用Socket类。(F)
5、UDP是一种无连接的不可靠传输的协议。(T)
6、DatagramSocket用于在程序之间建立传送数据报的通信连接。(T)
7、构造函数ServerSocket(0)表示在0端口上创建Socket。 (F)
8、TCP/IP协议的基本传输单位是数据报(Datagram)。 (T)
9、构造函数ServerSocket(int port) 默认请求连接队列最大长度为50。(T)
10、利用URL类openStream()方法只能读取网络数据,不能上传数据。 (T)
11、Socket类是java用来实现服务器端TCP操作的基础类。 (F)
12、构造函数DatagramPacket(byte[] buf, int length) 将数据包中Length长的数据装进Buf数组,一般用来接收数据。 (T)
13、Socket类的输入输出都是通过线程实现的。 (F)
14、构造函数DatagramPacket(byte[] buf, int length, InetAddress clientAddress, int clientPort)通常用来从客户端接收数据。(F)
15、Socket类是java用来实现客户端TCP操作的基础类。 (T)
四、简答题(20分)
1、基于TCP/IP的Socket编程客户端应用程序的编写基本步骤:
答:1、创建指定服务器上指定端口号的Socket对象。
2、创建与Socket对象绑定的输入输出流,并建立相应的数据输入输出流。
3、通过数据输入输出流与服务器端进行数据读写,完成双向通信。
4、通过调用close()方法关闭与服务器的连接,并关闭各个流对象,结束通信。
2、基于UDP协议的Socket编程的具体开发步骤:
答:服务器端程序的具体开发步骤: 1、建立一个DatagramSocket对象。 2、进入收发数据报包的循环,直到客户端数据传送完毕。循环过程如下:1)创建一个用于接收数据的DatagramPacket对象。(2)利用 DatagramSocket对象的receive()方法等待客户端的数据报包。(3)处理客户端数据报包内容。(4)创建一个用于发送响应信息数据的DatagramPacket对象。(5)利用DatagramSocket对象的方法 send()向客户端发送包含响应信息的数据报包。 3、客户端数据传送完毕,释放Socket。
3、基于TCP/IP的Socket编程的一般步骤如下:
答:1、分别是为服务器和客户端创建Socket对象,建立Socket连接
2、打开连接到Socket的输入输出流。Socket对象包含两个流:一是输入流,表示流入的数
据流,其作用是接收数据;一是输出流,表示流出的数据流,其作用是向外发送数据,其流操作与I/O操作相同。
3、按照一定的协议对Socket进行读写操作。
4、读写操作结束后,关闭Socket。
4、简述TCP和UDP协议的区别。
答:TCP是一种提供可靠的数据流服务,得到的是一个顺序的无差错的数据流。双方通信之前,先建立连接,然后双方即可在其上发送数据流,发送完毕后再关闭连接,这种数据交换方式的优点是效率高,缺点是建立连接和关闭连接需要额外的开销。
与TCP不同,UDP提供的是面向无连接、“不可靠”的数据报服务。它不提供对IP协议的可靠机制、流控制以及错误恢复功能等。由于UDP比较简单,比TCP负载消耗少。主要用于不需要TCP排序和流量控制能力而是自己完成这些功能的应用程序。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论