网络编程---TCP/UDP协议重点详解(3)

之前博客讲了TCP协议的重点,今天来看看UDP协议吧!

UDP是无连接、不可靠的、数据报服务

UDP协议不需要建立连接,只要使用UDP协议的程序执行起来,两端可以通过ip和端口号直接进行交互。自然也就没有TCP协议中的listen、accept函数。

UDP服务器编程流程:

网络编程---TCP/UDP协议重点详解(3)_第1张图片

网络编程---TCP/UDP协议重点详解(3)_第2张图片

UDP客户端编程流程:

网络编程---TCP/UDP协议重点详解(3)_第3张图片

UDP数据报服务sendto发送数据和recvfrom接收数据的次数相等。recvfrom接收数据时必须将sendto发送的数据一次接收完,否则本次剩余数据将被丢弃。sendto一次发送数据的长度应该小于等于recvfrom读取数据的大小。(UPD也有发送缓冲区和接收缓冲区)

网络编程---TCP/UDP协议重点详解(3)_第4张图片

网络编程---TCP/UDP协议重点详解(3)_第5张图片

接下来我们看看UDP的头部结构:

网络编程---TCP/UDP协议重点详解(3)_第6张图片

相比TCP头部,UDP头部就简单了很多。TCP和UDP头部都存在的部分:源端口号、目的端口号、校验码。

 

你可能感兴趣的:(网络编程)