UDP与TCP重要区别--随时更新

                                                                                                                            最后更新时间:2022/7/29

1.粘包:TCP会粘包,UDP不会粘包

因为TCP是基于数据流的协议,而UDP是基于数据报的协议,UDP是面向消息的协议,每个UDP段都是一条消息,应用程序必须以消息为单位提取数据,不能一次提取任意字节的数据

2.速度:TCP慢,UDP快。

3.顺序:TCP保证顺序,UDP不能保证顺序(可能会出现后发先至的情况)。

4.可靠性:TCP是可靠传输,UDP是不可靠传输。

TCP丢包会自动重传,UDP可能丢包,丢包后不会自动重传。TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道

5.对系统资源的要求(TCP较多,UDP少)。TCP需要建立专用的通信通道,还需要校验数据等,因此需求的系统资源较大。

6.每一条TCP连接只能是点到点的。UDP支持一对一,一对多,多对一和多对多的交互通信。UDP支持广播方式。

7.TCP面向连接(如打电话要先拨号建立连接)。UDP是无连接的,即发送数据之前不需要建立连接。

8.TCP首部开销20字节。UDP的首部开销小,只有8个字节。

9.TCP发送时,无连接会返回错误。UDP发送时,不管对方是否收到,不会返回错误。

10.代码方式:

服务器客户端
TCP

1、创建一个socket,用函数socket()。

2、设置socket属性。

3、绑定本机的IP地址、端口等信息到socket上,用函数bind()。

4、开启监听,用函数listen()。

5、接收客户端上来的连接,用函数accept()。

6、通过accept()返回相应客户端的socket建立专用的通信通道。

7、收发数据,用函数send()和recv(),或者read()和write()。

8、关闭网络连接。

9、关闭监听。

1、创建一个socket,用函数socket()。

2、设置socket属性。 

3、设置要连接的对方的IP地址和端口等属性。

4、连接服务器,用函数connect()。

5、收发数据,用函数send()和recv(),或者read()和write()。

6、关闭网络连接。

UDP

1、创建一个socket。

2、设置socket属性。

3、绑定IP地址、端口等信息到socket上,用函数bind()。

4、循环接收数据,用函数recvfrom()。

5、关闭网络连接

1、创建一个socket。

2、设置socket属性。  

3、设置对方的IP地址和端口等属性。

4、发送数据,用函数sendto()。

5、关闭网络连接。 

11.应该场合:

TCPUDP
要准确无误的传递数据可以接受偶尔的数据包丢失
对速度要求不高对速度要求很高
QQ语音、视频等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值