- UDP: 在客户端和服务器之间没有连接
- 没有握手
- 发送端在每一个报文中明确地指定目标的IP地址和端口号
- 服务器必须从收到的分组中提取出发送端的IP地址和端口号
- UDP: 传送的数据可能乱序,也可能丢失
- 进程视角看UDP服务:UDP 为客户端和服务器提供不可靠的字节组的传送服务

服务器端与客户端无须握手,服务器端没有welcomeSocket,接收到请求后直接返回
服务器端
- serverSocket = socket(…):建立serverSocket,建立时指明UDP socket
- bind():绑定一个sockaddr_in结构体对象sad(代表本服务器端)
- recvfrom(serverSocket, 数据, cad):进入阻塞状态,等待接收数据。
- recvfrom接收请求并读取,接收数据的同时还接收一个sockaddr_in结构体对象cad
- (对接收到的数据进行处理)
- sendto(serverSocket, cad, 数据):通过serverSocket向cad发送处理完成的数据
close()
客户端
- clientSocket = socket(…):建立clientSocket,建立时指明UDP socket
- (隐式bind)
- sendto(clientSocket, sad, 数据):通过clientSocket发送数据,发送时除了数据还发送一个sockaddr_in结构体对象cad(代表本客户端)
- recvfrom:接收服务器返回回来的数据
close()



