目录
创作不易多多支持😶🌫️😘
前言概要
我们首先来了解一下, 什么是网络编程. 网络编程也就是网络上的主机, 通过不同的进程, 以编程的形式实现网络通信. 这种通信可以是同一个主机, 也可以是不同主机:
也可以是不同主机上的通信:

计算机资源包括: 视频资源, 图片资源, 文本资源等
网络中的数据传输, 一般有发送端: 数据的发送方进程(源主机), 接收端: 数据的接收方进程, 收发方: 发送端和接收端两端.

Socket套接字: Socket套接字, 是由操作系统提供用于网络通信的技术, 是基于TCP/IP协议的网络通信的基本操作单元, 基于Socket套接字的网络程序开发就是网络编程
Socket套接字, 主要针对传输层协议, 划分为三类:
- 流套接字: 使用传输层TCP协议
- 数据报套接字: 使用UDP协议
- 原始套接字: 自定义传输层协议
接下来, 我们着重讲解数据报套接字.
对于UDP协议来说, 具有无连接, 面向数据报的特征, 也就是说每次都是没有简历连接, 一次性的发送和接收数据.
Java中使用UDP协议通信, 主要是基于DatagramSocket类来创建数据报套接字, 并使用DatagramPacket类作为被发送和接收的UDP数据报.
其流程图大致如下:

客户端和服务器之间通过DatagramSocket来建立连接, 客户端创建DatagramPacket数据报, 然后将对应的数据报发送给服务器, 服务器解析然后处理这个数据报, 随后服务器端创建一个DatagramPakcet数据报, 并填充处理结果, 并返回给客户端, 这里的客户端可以理解为发送端, 服务器可以理解为接收端.
关于数据报流的关键方法签名
DatagramSocket:
DatagramSocket是UDP协议的Socket套接字, 主要用于收发UDP数据报, 其构造方法如下:
DatagramSocket() : 创建一个UDP数据报套接字, 绑定到本机的任意一个端口(一般用于客户端)
DatagramSocket(int port) : 创建一个UDP数据报套接字, 绑定端口号为port. 一般用于服务器端
其类方法如下:
void send(DatagramPacket dp) : 从此套接字发送数据(不会阻塞等待, 直接发送)
void receive(DatagramPacket dp) : 从此套接字接收数据报(如果没有接收到数据报,该方法会阻塞等待)
void close() : 关闭此数据的套接字
DatagramPacket:
DatagramPakcet是UDP的数据报, 用来装填要传输的数据, 可以理解为装饭的饭盒子. 其方法的构造如下:
DatagramPacket(byte[ ] buf, int len) : 构造一个DatagramPacket数据报, 其数据保存在buf字节数组中, 接收的指定长度为len.
DatagramPacket(byte[ ] buf, int offset,

最低0.47元/天 解锁文章
426

被折叠的 条评论
为什么被折叠?



