python基础22------python基础之基于tcp和udp的套接字
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python基础22------python基础之基于tcp和udp的套接字相关的知识,希望对你有一定的参考价值。
一、TCP套接字
1、low版tcp套接字
服务器端 客户端
2、改进版tcp套接字
服务端 客户端
二、UDP的套接字
服务器 客户端
注:udp的套接字可以支持多个客户端同时访问,但tcp套接字就不行了,那是因为tcp套接字有tcp三次握手四次挥手。
三、recv和recvfrom的区别?
1、提前须知:
1.1tcp是send发送消息,recv接收消息。
1.2udp是sendto发送消息,recvfrom接收消息。
1.3 在我眼里看来send只是发送一个数据对象,所以recv接收的也只是一个数据对象,而sendto发送的是个数据对象和ip端口两个信 息,所以接收的也应该是个数据对象和ip端口信息。
2、tcp是基于数据流工作的,而udp是基于数据报工作的。
2.1send(bytes_data)发送数据流时当数据流的数据为空那么发送到自己的socket缓存区时,操作系统会把空包发过去。
2.2sendto(bytes_data,ip_port):发送数据报时,数据报中的数据为空但是ip和端口是不会为空的,发送到自己的缓存区后操作系统就会 对该数据进行处理
3、recv和recvfrom
3.1在tcp协议中如果服务器端接收缓冲区的数据为空,那么recv就会处于阻塞或者等待状态,这样客户端就一直没有返回的结果了。
3.2
以上是关于python基础22------python基础之基于tcp和udp的套接字的主要内容,如果未能解决你的问题,请参考以下文章