《Python核心编程》练习题之2-1:面向连接的套接字和无连接套接字之间的区别是什么?

本文对比了面向连接的套接字与面向无连接的套接字的区别,包括连接建立方式、数据传输特性、网络开销及主要协议等方面,有助于理解不同场景下选择合适的套接字类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这道题的答案在书上的第47~48页。我个人总结了一下,答案如下:

1.面向连接的套接字在进行通信之前必须建立一个连接,而面向无连接的套接字在进行通信之前不需要建立连接。代码层面,面向连接的套接字服务器端需要先打开监听(socket.listen())才能接收数据,客户端需要先连接(socket.connect())才能发送数据,而无连接的套接字无需这些操作

2.面向连接的套接字提供序列化的、可靠的和不重复的数据交付,没有记录边界,这意味着每条消息可以拆分成多个片段,并且每一条消息片段都能确保能够到达目的地,然后将它们按顺序组合在一起,消息完整无丢失。而面向无连接的套接字在数据传输过程中无法保证顺序性、可靠性和重复性,数据有记录边界,以整体发送。

3.面向连接的套接字比面向无连接的套接字网路开销大,传输速度没有面向无连接的速度高。

4.面向连接的套接字主要协议是TCP协议,面向无连接的套接字主要协议是UDP协议。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值