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的套接字的主要内容,如果未能解决你的问题,请参考以下文章

2022.2.22Python基础复习

22Python基础学习笔记1

学习日记 | 5.22 [Python3] Python3基础与面向对象

1.22 Python基础知识 - 正则表达式

2019.4.22 python

Python基础之函数