Java期末考试试题及参考答案(13)
创始人
2024-04-26 14:15:41
0

版权声明

  • 本文原创作者:谷哥的小弟
  • 作者博客地址:http://blog.csdn.net/lfdfhl

一、填空题

1.TCP/IP协议被分为四个层,分别是________、________ 、________ 、________。
2.传输层主要使网络程序进行通信,在进行网络通信时,可以采用TCP协议,也可以采用________协议。
3.在下载文件时必须采用________协议。
4.JDK提供了一个________类,该类可以发送和接收数据包。
5.在JDK中提供了两个用于实现TCP程序的类,一个是________类,用于表示服务器端;一个是Socket类,用于表示客户端。

二、判断题

1.DatagramSocket类中提供了accept()方法用于接收数据报包。()
2.端口号是由4个字节大小的二进制数来表示的。()
3.TCP协议是面向连接的通信协议,每次连接的创建都需要经过“三次握手”。 ()
4.在创建发送端的DatagramPacket对象时,需要指定发送端的目标IP地址和端口号。()
5.java.net包中的DatagramPacket类用于封装UDP通信中发送或者接收的数据。()

三、选择题

1.下列关于Socket类的描述中,错误的是( )
A、Socket类中定义的getInputStream()方法用于返回Socket的输入流对象。
B、Socket类中定义的getOutputStream()方法用于返回Socket的输出流对象。
C、Socket类中定义的getLocalAddress()方法用于获取Socket对象绑定的本地IP地址。
D、Socket类中定义的close()方法用于关闭输入/输出流对象。
2.下列ServerSocket类的方法中,用于接收来自客户端请求的方法是( )
A、accept()
B、getOutputStream()
C、receive()
D、get()
3.下列关于UDP协议特点的描述中,错误的是( )
A、在UDP协议中,数据的发送端和接收端不建立逻辑连接。
B、UDP协议消耗资源小,通信效率高,通常都会用于音频、视频和普通数据的传输。
C、UDP协议在传输数据时不能保证数据的完整性,因此在传输重要数据时不建议使用UDP协议。
D、在UDP协议连接中,必须要明确客户端与服务器端。
4.使用UDP协议通信时,需要使用哪个类把要发送的数据打包()
A、Socket
B、DatagramSocket
C、DatagramPacket
D、ServerSocket
5.下面关于IP地址的描述中,错误的是()
A、IP地址可以唯一标识一台计算机
B、IP地址目前的两个常用版本分别是IPv4和IPv6
C、IP地址每个字节用一个十进制数字(0-255)表示
D、192.168.1.360是一个合格的IP地址

四、简答题

1.请简述TCP通信与UDP通信的主要区别。
2.请简述TCP协议中服务端与客户端连接过程。

五、编程题

使用基于UDP的Java Socket编程,完成在线咨询功能:
1、客户向咨询人员咨询。
2、咨询人员给出回答。
3、客户和咨询人员可以一直沟通,直到客户发送bye给咨询人员时通话结束。

参考答案

一、
1.链路层、网络层、运输层、应用层
2.UDP
3.TCP
4.DatagramSocket
5.ServerSocket
二、
1.错
2.错
3.对
4.对
5.对
三、
1.D
2.A
3.D
4.C
5.D
四、
1.UDP通信与TCP通信的区别在于,UDP中只有发送端和接收端,不区分客户端与服务器端,计算机之间可以任意地发送数据;而TCP通信是严格区分客户端与服务器端的,在通信时,必须先由客户端去连接服务器端才能实现通信,服务器端不可以主动连接客户端,并且服务器端程序需要事先启动,等待客户端的连接。
2.在TCP连接中必须要明确客户端与服务器端,由客户端向服务器端发出连接请求,每次连接的创建都需要经过“三次握手”。第一次握手,客户端向服务器端发出连接请求,等待服务器确认;第二次握手,服务器端向客户端回送一个响应,通知客户端收到了连接请求;第三次握手,客户端再次向服务器端发送确认信息,确认连接。

五、

AskServer.java

public class AskServer {public static void main(String[] args) {//创建DatagramSocket,发送接收数据都依赖他DatagramSocket socket = null;try {socket = new DatagramSocket(8888);Scanner input = new Scanner(System.in);while (true) {//准备一个空的数据包,用来接收数据byte[] buf = new byte[1024];DatagramPacket packet = new DatagramPacket(buf, buf.length);//接收数据使用空的数据包socket.receive(packet);//输出信息String info = new String(packet.getData(), 0, 							   packet.getLength());System.out.println("客户端请求:" + info);//判断是否退出if ("bye".equals(info)) {break;}//发送数据String result = input.nextLine();byte[] buf2 = result.getBytes();DatagramPacket packet2 = new DatagramPacket(buf2, 						   buf2.length,packet.getAddress(), packet.getPort());socket.send(packet2);}} catch (SocketException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} finally {//关闭socketsocket.close();}}}

AskClient.java

public class AskClient {public static void main(String[] args) {//创建DatagramSocket,发送接收数据都依赖他DatagramSocket socket = null;try {socket = new DatagramSocket(9999);Scanner input = new Scanner(System.in);while (true){//准备要发送的数据String str = input.nextLine();//bye//使用数据包把数据封装起来byte[] buf = str.getBytes();DatagramPacket packet = new DatagramPacket(buf, buf.length,InetAddress.getByName("192.168.1.252"), 8888);//发送数据包socket.send(packet);//判断是否退出if ("bye".equals(str)) {break;}//接收数据byte[] buf2 = new byte[1024];DatagramPacket packet2 = new DatagramPacket(buf2, 						   buf2.length);socket.receive(packet2);System.out.println("服务器端反馈:"+new String(packet2.getData(), 0, packet2.getLength()));}} catch (SocketException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} finally {//关闭socketsocket.close();}}
}

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
客厅放八骏马摆件可以吗(家里摆... 今天给各位分享客厅放八骏马摆件可以吗的知识,其中也会对家里摆八骏马摆件好吗进行解释,如果能碰巧解决你...
苏州离哪个飞机场近(苏州离哪个... 本篇文章极速百科小编给大家谈谈苏州离哪个飞机场近,以及苏州离哪个飞机场近点对应的知识点,希望对各位有...