之前博客讲了TCP协议的重点,今天来看看UDP协议吧!
UDP是无连接、不可靠的、数据报服务
UDP协议不需要建立连接,只要使用UDP协议的程序执行起来,两端可以通过ip和端口号直接进行交互。自然也就没有TCP协议中的listen、accept函数。
UDP服务器编程流程:
UDP客户端编程流程:
UDP数据报服务sendto发送数据和recvfrom接收数据的次数相等。recvfrom接收数据时必须将sendto发送的数据一次接收完,否则本次剩余数据将被丢弃。sendto一次发送数据的长度应该小于等于recvfrom读取数据的大小。(UPD也有发送缓冲区和接收缓冲区)
接下来我们看看UDP的头部结构:
相比TCP头部,UDP头部就简单了很多。TCP和UDP头部都存在的部分:源端口号、目的端口号、校验码。