Java基础入门课后习题及答案 下载本文

}

2、编写一个JFrame窗口,要求如下:

1)窗口中的NORTH区域中放置一个JPanel面板 2)JPanel面板中从左到右依次放置如下组件: JLabel标签,标签的文本为“兴趣”

三个JCheckBox多选按钮,文本分别为“羽毛球”、“乒乓球”、“唱歌” JLabel标签,标签的文本为“性别”

两个JRadioButton按钮,文本分别为“男”、“女”

3)窗口的CENTER区域放置一个JScrollPane容器,容器中放置一个JTextArea文本域 4)当点击多选按钮和单选按钮时,会把选中按钮的文本显示在JTextArea文本域中。 参考答案

import .*; import .*; import .*;

import class Information extends JFrame {

quals(gender)) }

public Information() {

;

(\你的性别为: \

import .*;

import class MyMenu extends JFrame implements ActionListener {

JLabel label = new JLabel(\请选择菜单\ JMenuItem aaMenuItem, baMenuItem; MyMenu() { }

public void actionPerformed(ActionEvent e) {

JMenuBar menuBar = new JMenuBar(); JMenu aMenu = new JMenu(\菜单A\ JMenu bMenu = new JMenu(\菜单B\

JMenuItem aaMenuItem = new JMenuItem(\菜单项 AA\ JMenuItem abMenuItem = new JMenuItem(\菜单项AB\ JMenuItem baMenuItem = new JMenuItem(\菜单项 BA\ (aMenu); (bMenu); (aaMenuItem); ();

(abMenuItem); (baMenuItem); (this); (this); (this);

setJMenuBar(menuBar); getContentPane().add(label, ;

}

JMenuItem source = (JMenuItem) ()); (\选择了菜单:\ ;

public static void main(String args[]) {

JFrame frame = new MyMenu(); ;

(300, 200); (true);

}

第9章 网络编程

一、填空题

1、TCP协议的特点是 面向连接 ,即在传输数据前先在 客户端 和 服务器端 建立逻辑连接。

2、在计算机中,端口号是用 2 字节,也就是16位的二进制数表示,它的取值范围是 0-65535 。

3、TCP/IP协议被分为四个层,分别是 链路层 、 网络层 、 运输层 、 应用层 。 4、在JDK中,IP地址用 InetAddress 类来表示的,该类提供了许多和IP地址相关的操作。。 5、使用UDP协议开发网络程序时,需要使用两个类,分别是 DatagramPacket 和 DatagramSocket 。 二、判断题

1、由于UDP是面向无连接的协议,可以保证数据的完整性,因此在传输重要数据时建议使用UDP协议。错

2、在网络通信中,对数据传输格式、传输速率、传输步骤等作了统一规定,只有通信双方共同遵守这个规定才能完成数据的交互,这种规定称为网络传输协议。对

3、在创建发送端的DatagramPacket对象时,需要指定发送端的目标IP地址和端口号。对 4、IPv4版本的IP地址使用4个字节来表示,IPv6版本的IP地址使用8个字节来表示。错 5、使用TCP协议通信时,通信的两端以IO的方式进行数据的交互。对 三、选择题

1、使用UDP协议通信时,需要使用哪个类把要发送的数据打包C

A、Socket B、DatagramSocket C、DatagramPacket D、ServerSocket 2、以下哪个是serverSocket类用于接收来自客户端请求的方法A

A、accept() B、getOutputStream() C、receive() D、get() 3、以下说法哪些是正确的(多选)ABD

A、TCP连接中必须要明确客户端与服务器端。

B、TCP协议是面向连接的通信协议,它提供了两台计算机之间可靠无差错的数据传输。 C、UDP协议是面向无连接的协议,可以保证数据的完整性。

D、UDP协议消耗资源小,通信效率高,通常被用于音频、视频和普通数据的传输。 4、以下哪个类用于实现TCP通信的客户端程序B

A、ServerSocket B、Socket C、Client D、Server

5、进行UDP通信时,在接收端若要获得发送端的IP地址,可以使用DatagramPacket的哪个方法A

A、getAddress() B、getPort() C、getName() D、getData() 6、以下哪个方法是DatagramSocket类用于发送数据的方法D A、receive() B、accept() C、set() D、send() 7、在程序运行时,DatagramSocket的哪个方法会发生阻塞B A、send() B、receive() C、close() D、connect() 8、TCP协议的“三次握手”中,第一次握手指的是什么C A、客户端再次向服务器端发送确认信息,确认连接。

B、服务器端向客户端回送一个响应,通知客户端收到了连接请求。 C、客户端向服务器端发出连接请求,等待服务器确认。 D、以上答案全部错误

四、简答题

1、网络通信协议是什么

在Internet中传输数据都需要遵守一定的规则,这种规则通常被称作网络通信协议。网络通信协议对数据传输格式、传输速率、传输步骤等作了统一规定,通信双方必须共同遵守这个规定才能完成数据的交互。到目前为止,网络通信协议已经有很多种,其中TCP/IP协议在世界范围内应用最为广泛。

2、TCP协议和UDP协议有什么区别

UDP协议是无连接通信协议,所谓的无连接就是指数据的发送端和接收端不建立逻辑连接。由于UDP协议消耗资源小,通信效率高,通常都会用于音频、视频和普通数据的传输。UDP协议在传输数据时不能保证数据的完整性,因此在传输重要数据时不建议使用UDP协议。

TCP协议是面向连接的通信协议,即在传输数据前先在发送端和接收端建立逻辑连接,然后再传输数据,它提供了两台计算机之间可靠无差错的数据传输。在TCP连接中必须要明确客户端与服务器端,由客户端向服务端发出连接请求,每次连接的创建都需要经过“三次握手”。 3、Socket类和ServerSocket类各有什么作用

ServerSocket类用于创建服务端程序,通过调用ServerSocket对象的accept()方法,接收来自客户端的请求。

Socket类用于创建客户端程序,当客户端和服务端的两个Socket建立了专线连接后,连接的一端既能向另一端连续写入字节,也能从另一端读取字节。Socket类中定义了getInputStream()方法返回Socket的输入流对象,定义了getOutputStream()方法返回Socket的输出流对象。只要连接的一端向该输出流对象写入了数据,连接的另一端就能从其输入流对象中读取到。

五、编程题

请按照题目的要求编写程序并给出运行结果。

1、 使用InetAddress类获取本地计算机的IP地址和主机名,甲骨文公司主机的IP地址。

提示:

1)通过();获取本地计算机的InetAddress对象 2)通过(\获取Oracle公司的InetAddress对象

2、 使用UDP协议编写一个网络程序,设置接收端程序监听端口为8001,发送端发送的数据是“hello

world”。 提示: 1)使用new DatagramSocket(8001)构造方法创建接收端的DatagramSocket对象,调用receive()

方法接收数据。

2)发送端和接收端使用DatagramPacket封装数据,在创建发送端的DatagramPacket对象时需要

指定目标IP地址和端口号,端口号要和接收端监听的端口号一致。 3)发送端使用send()方法发送数据。 4)使用close()方法释放Socket资源。

3、 使用TCP协议编写一个网络程序,设置服务器程序监听端口为8002,当与客户端建立连接后,向

客户端发送“hello world”,客户端接负责将信息输出。 提示:

1)使用ServerSocket创建服务器端对象,监听8002端口,调用accept()方法等待客户端连接,当与客户端连接后,调用Socket的getOutputStream()方法获得输出流对象,输出“hello world。

2)使用Socket创建客户端对象,指定服务器的IP地址和监听端口号,与服务器端建立连接后,

调用Socket的getInputStream()方法获得输入流对象,读取数据,并打印出来 3)在服务器端和客户端都调用close()方法释放socket资源。