socket介绍
IP地址+端口号组成了所谓的socket,socket是网络上运行的程序之间双向通信链路的终结点,是TCP(传输层)和UDP(用户数据报协议)的基础;
Java的网络支持:
1,针对网络通信的不同层次,Java提供了不同的API.其提供的网络功能有四大类,都位于java.net包下(提供网络应用程序的类):
InetAddress:用于标识网络的硬件资源,主要是IP地址;
URL: 统一资源占位符,通过URL可以直接读取或写入网络上的数据;
sockets: 使用TCP协议实现的网络通信socket相关的类;
Datagram: 使用UDP协议,将数据保存在用户数据报中,通过网络进行通信;
socket的原理机制:
1,通信的两端都有socket。
2,网络通信其实就是socket的通信。
3,数据在两个socket间通过IO传输。
TCP编程
1,Java中基于TCP协议的实现网络通信的类
1.1客户端的Scoket类
1.1服务端的ServerScoket类
2,socket通信的步骤
2.1 创建ServerSocket和socket
2.2 打开连接到socket的输入/输出流
2.3 按照协议对socket进行读/写操作
2.4 关闭输入/输出流,关闭socket
3,服务端的步骤
3.1 创建ServerSocket对象,绑定监听端口。
3.2 通过accpet()方法监听客户请求。
3.3 连接建立后,通过输入流读取客户端发送的请求消息。
3.4 通过输出流向客户端发送响应消息
3.5 关闭相关资源
服务端:输入(读取客户端) -- 输出(响应发送)
4,客户端的步骤
4.1 创建Socket对象,指明需要连接的服务器的地址和端口号
4.2 连接建立后,通过输出流向服务端发送请求消息
4.3 通过输入流获取获取服务器响应的消息
4.4 关闭响应资源
客户端:输出(主动发送)--输入(响应回收服务端发送的消息)