实验目的:
1、掌握“聊天程序”的实现思路。
2、掌握网络通信中UDP协议的编程原理。
3、理解并掌握UDP通信中DatagramPacket和DatagramSocket类的使用。
实验要求:
在当今,网聊已成为人们生活的重要组成部分,人们每天都会使用QQ或者微信等社交软件来与他人进行沟通。在学习完UDP通信的相关知识后,读者已经可以将多线程和UDP的相关知识结合起来,实现一个功能完善的聊天程序。
本任务的聊天程序要求通过监听指定的端口号、目标IP地址和目标端口号,实现消息的发送和接收功能,并把聊天内容显示出来。
二、实验原理(图):
1、通过任务描述可以看出,此任务是使用多线程和UDP通信的相关知识实现的。要实现聊天窗口界面,首先就需要一个实现聊天室功能的类,类中需要定义访问聊天室程序时的输出语句,以及获取输入的发送端口号、接收端口号和实现发送和接收功能的方法。
2、实现发送数据功能。该功能需要通过一个实现了Runnable接口的类来实现,类中需要定义获取发送数据的端口号,并在实现的run()方法中,编写发送数据的方法。
3、实现接收数据功能。该功能也需要一个实现了Runnable接口的类来实现,类中需要定义获取接收数据的端口号,并在实现的run()方法中,编写显示接收到的数据的方法。
4、创建完所有的类和方法后,就可以通过运行两次程序,并同时开启两个窗口来实现聊天功能。
三、实验设备(环境):
确保已经正确安装JDK,Eclipse等集成IDE,在 Eclipse环境中完成聊天程序设计程序的编写和调试。
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.Inet4Address;
import java.net.InetAddress;
import java.nio.channels.DatagramChannel;
import java.util.Scanner;
public class SendTask implements Runnable {
private int sendPort;//发数据的端口号
//构造方法
public SendTask(int sendPort) {
this.sendPort=sendPort;}
public void