一、基础知识
1、两台计算机通过网络进行通信的条件
- IP地址
- 协议
端口号
这三个条件能够唯一识别网络中的进程。
2、TCP/IP模型
3、Java提供的四大类网络功能
- InetAdress:用于标识网络上的硬件资源
- URL:统一资源定位符,通过URL可以直接读取或者写入网络的数据
- Sockets:使用TCP协议实现网络通信的Socket相关的类
- Datagram:使用UDP协议,将数据保存在数据报中,通过网络通信
二、基于TCP协议的Socket通信
1、Socket通信模型
感觉和Tcp/IP协议的三次握手很类似
2、Socket通信实现步骤
- 创建ServerSocket和Socket;
- 打开连接到Socket的输入/输出流;
- 按照协议对Socket进行读写操作;
- 关闭输入输出流,关闭Socket。
具体的实现:
服务端
客户端
3、多线程实现多客户端的通信
- 服务器端创建ServerSocket,循环调用accept()等待客户端连接
- 客户端创建一个Socket并请求和服务器端连接
- 服务器端接受客户端请求,创建Socket与该客户端建立专线连接
- 建立连接的两个Socket在一个单独的线程上对话
- 服务器端继续等待新的连接
具体实现:
ServerThread类:
Server类:
Client类:与服务器客户端一对一的一样。
三、基于UDP协议的网络通信
代码实现:
Server类:
Client类