一、实验名称
UDP客户服务器即时通信程序
二、实验目的:
掌握基于SOCKET的网络编程方法。
基于JAVA语言,编写一个SOCKET的即时通信小程序
三、实验内容和要求
实验内容:
基于JAVA语言,编写一个SOCKET的即时通信小程序
实验平台:
Windows操作系统、Linux操作系统。
JAVA开发平台(不限)。
参考书籍:
《JAVA NETWORK PROGRAMMING》
四、实验环境
硬件环境:
cpu型号:11th Gen Intel(R) Core(TM) i5-1135G7 @ 2.40GHz
主频内存型号:2.42 GHz
容量:32+512
软件环境:
操作系统版本号:22631.3296
软件及语言版本版本:IntelliJ IDEA Community Edition2023-JAVA-JDK17.0.5
五、程序设计结构及技术原理
1、socket概述
socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信。
socket起源于UNIX,在Unix一切皆文件哲学的思想下,socket是一种"打开—读/写—关闭"模式的实现,服务器和客户端各自维护一个"文件",在建立连接打开后,可以向自己文件写入内容供对方读取或者读取对方内容,通讯结束时关闭文件。
2、基于socket技术的TCP通信流程
1)服务端(被动连接,需创建自己的地址信息)
创建一个套接字 ———socket()
绑定IP地址、端口等信息到socket上——bind()
监听套接字——listen()
等待客户端的连接请求——accept()
发送、接收数据——send()和recv(),或者read()和write()
关闭网络连接——close()
2)客户端
创建一个套接字——socket()
连接服务器——connect()
接收、发送数据——send()和recv(),或者read()和write()
关闭网络连接——close()