网络应用程序的接口。Socket可以看作不同主机间的进程进行双向通信的端点。
套接字类型:
流套接字(SOCK_STREAM)
流套接字用于提供面向连接、可靠的数据传输服务,即TCP协议。(ServerSocket, Socket)
数据报套接字(SOCK_DGRAM)
从一台机器向另一台机器以无连接的、数据报的方式进行通讯,即UDP协议。(DatagramSocket)
原始套接字(SOCK_RAW)
允许对较低层次的协议直接访问,用来操纵网络层和传输层应用。(java无法直接使用)
TCP Socket 特点
基于流套接字的链接,数据传输有保障;
保证数据顺序
保证数据正确性
传输速度较慢,系统资源要求多
适用于建立长时间链接
通常应用于即时通讯
操作模式:
打开—读/写—关闭
Socket为全双工模式,即同时双向操作:输入和输出
服务器端编程步骤:
创建ServerSocket对象
端口监听,收到请求时,创建Socket对象通讯
通过Socket的I/O流对象,按一定的交互协议 与Client端通讯(读/写流操作)
关闭输入输出流、关闭Socket对象
关闭 ServerSocket对象
客户端编程步骤:
创建socket,打开socket的I/O流
通过Socket的I/O流对象,按一定的交互协议 与Server端通讯(读/写操作)
关闭输入输出流、关闭socket