首页 > 编程语言 >Python网络编程之socket之send和recv原理剖析

Python网络编程之socket之send和recv原理剖析

时间:2023-01-13 14:00:49浏览次数:42  
标签:socket Python send 网卡 接收缓冲区 发送缓冲区 发送数据 接收数据

一、认识TCP socket的发送和接收缓冲区

当创建一个TCP socket对象的时候会有一个发送缓冲区和一个接收缓冲区这个发送和接收缓冲区指的就是内存中的一片空间。

二、send原理剖析

send是不是直接把数据发给服务端?

不是,要想发数据,必须得通过网卡发送数据,应用程序是无法直接通过网卡发送数据的,它需要调用操作系统接口,也就是说,应用程序把发送的数据先写入到发送缓冲区(内存中的一片空间),再由操作系统控制网卡把发送缓冲区的数据发送给服务端网卡 

三、recv原理剖析

recv是不是直接从客户端接收数据?

不是,应用软件是无法直接通过网卡接收数据的,它需要调用操作系统接口,由操作系统通过网卡接收数据,把接收的数据写入到接收缓冲区(内存中的一片空间),应用程序再从接收缓存区获取客户端发送的数据

四、send和recv原理剖析图

Python网络编程之socket之send和recv原理剖析_应用程序

说明:

  • 发送数据是发送到发送缓冲区
  • 接收数据是从接收缓冲区 获取

五、小结

不管是recv还是send都不是直接接收到对方的数据和发送数据到对方,发送数据会写入到发送缓冲区,接收数据是从接收缓冲区来读取,发送数据和接收数据最终是由操作系统控制网卡来完成。

标签:socket,Python,send,网卡,接收缓冲区,发送缓冲区,发送数据,接收数据
From: https://blog.51cto.com/u_13236892/6005919

相关文章

  • 基于Python+UIautomation的WindowsGUI自动化测试实战(一)-记事本
    1测试需求模拟用户操作,打开记事本进行内容输入2测试步骤2.1用例1打开记事本;窗口最大化;输入"人生苦短,我用Python!";关闭窗口;不保存直接退出。2.2用例2打开记......
  • 用Python执行程序的4种方式
    在编写代码中,经常会遇到在Python程序中打开外部程序的需求,那么在Python里如何打开外部程序呢?今天我们来介绍四种不同的方式,供大家参考收藏。使用os.system()os.system(......
  • Python字典和集合初窥
    (Python进阶10-字典与集合)1字典字典和列表类似,同样是可变序列,不过与列表不同,字典是无序的。字典的主要特征:1.1字典的创建和删除字典的每个元素都包含“键”和“......
  • Python函数的学习总结
    (Python进阶11-函数)1函数的创建和调用1.1函数创建创建函数即定义函数使用关键字def实现语法:deffname([pname]): ["comm"] [fuc]说明:def:定义函数的,固定......
  • python django 医院挂号系统
    pythondjango医院挂号系统pythondjango挂号管理系统pythondjango医院挂号管理系统后端:pythondjango数据库:MySQL5.7前端:html cssjs等涉及功能:登陆、退出......
  • python实战-解析swagger-api接口信息
    *coding:UTF-8*"""@project->file:city-test->swagger_api_parse_backup@Author:qinmin.vendor@Date:2023/1/1217:55@Desc......
  • python django个人云盘系统
    pythondjango云盘系统pythondjango个人云盘pythondjango本地云盘Pythondjango文件系统 后端:pythondjango数据库:MySQL5.7前端:html cssjs等涉及功能:登陆......
  • RPC接口测试技术-websocket 自动化测试实践
    WebSocket是一种在单个TCP连接上进行全双工通信(FullDuplex是通讯传输的一个术语。通信允许数据在两个方向上同时传输,它在能力上相当于两个单工通信方式的结合。全双工......
  • 详解Python列表和元组
    (详解Python的列表和元组)1序列序列是一块可存放多个值的连续内存空间,这些值按一定顺序排列,可通过每个值所在位置的编号(称为索引)访问它们。Python序列结构主要有列表、......
  • Python:Nunmpy中的meshgrid函数
    1numpy.meshgrid()官方文档中的作用是从坐标向量中返回坐标矩阵,也就是生成网格点坐标矩阵。Parameters:*xi:array_like数组x1,x2,...,xn,1-D维数组,表示网格的坐标。......