「python网络编程」查看并修改socket接收和发送缓冲区大小

linux修改网络缓冲区大小 一、修改套接字socket的缓存大小 最小值 最大值 默认值 echo 65536 > /proc/sys/net/core/rmem_min echo 256960 > /proc/sys/net/core/wmem_max echo 65536 > /proc/sys/net/core/wmen_default 二、修改tcp接收/发送缓冲区 最小值 最大值 默认值 echo "4096 32768 65536" > /proc/sys/net/ipv4/tcp_rmem ec 阅读详情

原创不易,点个赞呗!

一般情况,我们并不关心 socket 的默认缓冲区大小。

但最近,使用非租塞 socekt 通信时,遇到了一些奇怪的问题,需要查看 socekt 的缓冲区大小,以此证明我的代码没问题,是处理端读取太慢,甩锅给别人…程序员之间的博弈,哈哈哈

利用 socekt 选项,可以查看或修改缓冲区大小,记录代码如下:

# _*_ coding:utf-8 _*_

"""
查看并修改socket缓存区大小
"""
import socket

sock = socket.socket()

# 查看默认发送接收缓冲区大小
recv_buff = sock.getsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF)
send_buff = sock.getsockopt(socket.SOL_SOCKET, socket.SO_SNDBUF)
print(f'默认接收缓冲区大小:{recv_buff}。默认发送缓冲区大小:{send_buff}')

# 设置接收缓冲区大小为1024
sock.setsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF, 1024)

# 设置发送缓冲区大小为2048
sock.setsockopt(socket.SOL_SOCKET, socket.SO_SNDBUF, 2048)

# 查看修改后发送接收缓冲区大小
recv_buff = sock.getsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF)
send_buff = sock.getsockopt(socket.SOL_SOCKET, socket.SO_SNDBUF)
print(f'修改后接收缓冲区大小:{recv_buff}。修改后发送缓冲区大小:{send_buff}')

运行结果:

默认接收缓冲区大小:65536。默认发送缓冲区大小:65536
修改后接收缓冲区大小:1024。修改后发送缓冲区大小:2048

END.

工作之余,喜欢写些东西,涉及编程、生活、热点等。感兴趣的微信朋友,可以搜一搜公众号:【程序员的一天】,欢迎关注、支持,谢谢!

C语言手搓HTTP服务器:从Socket到并发模型的底层网络编程实践 HTTP协议作为Web通信的基石,其底层实现原理是每一位后端开发者必须掌握的核心知识。理解HTTP协议的工作原理,关键在于剖析其基于TCP/IP协议栈的请求-响应模型,这涉及到网络字节序、Socket编程、报文解析等底层技术。掌握这些技术不仅能提升系统调试和性能优化的能力,更是构建高并发、高性能网络服务的工程基础。通过用C语言从零实现一个支持GET请求的HTTP服务器,开发者可以深入理解从Socket创建、地址绑定、监听连接到请求解析、响应构建的完整链路,并直面内存管理、并发处理等系统级挑战。这一实践过程尤 阅读详情

相关推荐

Socket阻塞与非阻塞模式详解:从原理到高并发实战

在网络编程中,Socket是进程间通信的基础,其工作模式直接决定了程序的性能和可靠性。阻塞模式让线程等待I/O操作完成,编程简单但并发能力受限;非阻塞模式则立即返回状态,将等待责任交给应用程序,为实现高并发奠定了基础。理解这两种模式的原理,是掌握高性能网络服务开发的关键。通过I/O多路复用技术(如epoll、kqueue),可以高效管理大量非阻塞Socket,避免忙轮询带来的CPU浪费,从而构建出能处理数万并发连接的服务。在实际工程中,结合事件循环库(如libevent、libuv)或异步框架(如Netty

cuixie2370的博客 425

Linux 查看和设置 socket 缓冲区大小

最近我们开发的软件在客户现场运行很容易出现丢包现象,由于我们的软件需要接收来自传感器的庞大数据量,一秒钟有数万个数据包,网络带宽可达 200 Mb/s。然而,当我们出发去到客户现场调试时,发现软件在我们自己的设备上运行良好,而客户的设备依然丢包严重。由于 /proc/sys/net 目录内容的临时性,因此建议把 TCP/IP 参数的修改添加到 /etc/sysctl.conf 文件,然后保存文件,使用命令。实际上,除了上述修改方式,我们还可以直接通过代码设置 socket 接收/发送缓冲区大小。

yiyu20180729的博客 7641

Linux下设置socket的发送和接收缓冲区

Linux下设置socket的发送和接收缓冲区

github_34572149的博客 1728

设置Socket缓冲区的大小

在32位的操作系统下,如果我没有记错的话:socket缓冲区默认大小是8192B,但是有些时候我们在传输大文件的时候或者几十G的文件的时候我们想。MessageBox("获取服务端设置SOCKET发送缓冲区大小失败");//设置系统发送数据为默认的倍数。MessageBox("设置SOCKET发送缓冲区大小失败");这里我也是摘抄一个网友的博客,进行了修改。

wesupport的博客 5872

window下获取socket获取缓冲区长度接口

在 Windows 系统中,同样可以使用 getsockopt 和 setsockopt 来获取和设置缓冲区大小,方法与 Linux 上类似,只是需要引用不同的头文件。如果你使用 Python 进行网络编程,可以通过 socket.getsockopt() 来获取缓冲区的大小。通过这些方法,你可以在编程中获取和设置 socket 缓冲区的大小,以便进行更精确的控制和优化。SO_RCVBUF:获取或设置接收缓冲区大小。SO_SNDBUF:获取或设置发送缓冲区大小。setsockopt:设置套接字选项。

我不是码农的博客~~~ 301

手把手教你用UC3842搭建12V/5A反激电源(附PSIM仿真文件)

本文详细介绍了基于UC3842的12V/5A反激电源设计与PSIM仿真实践。从UC3842芯片选型、高频变压器计算到PSIM仿真模型搭建,提供完整的开关电源设计流程。特别包含PCB布局要点和实测优化建议,帮助工程师快速掌握反激电源开发技巧。

u6v7w8x的博客 1203

Python网络编程——修改套接字发送和接收的缓冲区大小

https://www.cnblogs.com/ouyangyixuan/p/5894542.html 很多情况下,默认的套接字缓冲区大小可能不够用。此时,可以将默认的套接字缓冲区大小改成一个更合适的值。 1. 代码 1 # ! /usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4 import socket 5 6 ...

Mike.Song的专栏 2226

实战解析:在.NET中实现Dify API流式请求与响应的完整方案

本文详细解析了在.NET应用中对接Dify API时实现流式请求与响应的完整方案。针对传统后端“接收完才返回”的痛点,文章提供了基于ASP.NET Core的实战代码,通过配置HttpCompletionOption.ResponseHeadersRead和手动Flush响应流,构建高效的中转管道,确保AI回复能够像ChatGPT一样实时逐字推送到前端,显著提升用户体验。

weixin_29267307的博客 296

python socket清空接收缓冲区_Python网络编程——修改套接字发送和接收的缓冲区大小...

很多情况下,默认的套接字缓冲区大小可能不够用。此时,可以将默认的套接字缓冲区大小改成一个更合适的值。1. 代码# ! /usr/bin/env python# -*- coding: utf-8 -*-import socket# 设置发送缓冲域大小SEND_BUF_SIZE = 4096# 设置接收缓冲域大小RECV_BUF_SIZE = 4096def modify_buff_size():#...

weixin_39548606的博客 2455

请叫我鱼拆,2024扫地机器人的第一次拆机

从背面可以看出,这个机器人是两轮差速模型,两个驱动轮,一个万向轮,驱动轮位于机器人中心位置,这样原地旋转的圆心就是机器人的中心。可以看到设备已经连接,但是没有办法进shell,厂家应该有做了安全保护之类的,有知道从这个口可以登录系统办法的小伙伴可以后台留言。但这台机器人一直报警说,机器人轮子离地,小鱼 估计是防跌落模块有问题,误触发了,所以打算先拆机看看。接着小鱼试了下,机器可以开机,然后给他重新配置wifi,连上 米家。Allwinner,全志的片子,不知道哪个型号的,看产品id,应该支持adb。

生活不止眼前的苟且 3932

STM32内存大小与地址的对应关系以及计算方法

1、概述 在计算机中要访问存储区,都是通过地址来进行访问的,包括所有的外设(比如串口、内存、硬盘等),都对应有一个访问地址,地址就相当于门牌号,有了门牌号,我们才知道操作的是哪一个区域、哪一个外设。 最被大家熟知的是计算机内存,计算机内存有4G、8G,16G等等,对于程序员而言,要在代码中操作这些内存,肯定得知道内存的地址,此外,还需要会计算地址与内存大小的计算方法与对应关系。STM32作为微

Ace's Blog 4万+

python网络编程之修改发送和接受的缓存区大小

很多情况下,默认的套节字缓冲区大小可能不够用。因此我们可以想办法去修改默认缓存区大小,改成一个合适的值。我们使用的方法是利用套节字对象的setsocketopt( )的方法修改默认的套节字缓冲区大小。首先我们定义两个常量:SEND_BUF_SIZE和RECV_BUF_SIZE。然后在一个函数中调用套节字的实例setsocketopt( )方法。以下是具体代码:SEND_BUF_SIZE = 4096

毕宿五 6410

SAP SD科目确定:从配置到凭证的财务集成核心

本文深入解析SAP SD科目确定的核心价值与配置实践,涵盖从主数据准备到财务凭证生成的全流程。通过六步配置法和KOFI00过程拆解,帮助企业实现销售与财务模块的高效集成,确保收入、成本等数据准确归集至对应会计科目,提升财务自动化水平与数据准确性。

weixin_33491377的博客 251

[python&php 网络编程]socket缓冲区大小设置

1.python import socket SEND_BUF_SIZE = 4096 RECV_BUF_SIZE = 4096 def modify_buff_size(): sock = socket.socket( socket.AF_INET, socket.SOCK_STREAM ) # Get the size of the socket's send

YIP 8656

移动端实战指南:深入理解 & 接入 IAB OMSDK

OMSDK(OpenMeasurementSDK)是IABTechLab推出的标准化测量工具,用于统一移动端/原生App广告的可见性和验证流程。其核心包括Native库(采集设备数据)和OMID JavaScript层(实现通信),通过标准化接口让开发者只需接入一套SDK即可兼容多个测量厂商,减少冲突和性能损耗。v1.4版本强化了对CTV和原生App场景的支持,而v1.5新增了画中画检测等功能。集成流程需通过IAB技术实验室注册下载,并遵循严格的命名空间规则。测试阶段需嵌入验证脚本并通过指定工具验证

帅次的博客 1189

【用unity实现100个游戏之18】从零开始制作一个类CSGO/CS2、CF第一人称FPS射击游戏——基础篇1(附项目源码)

生存和射击游戏一直是我的最爱,说起3D最普遍的应该就是射击系统了,你可以在任何情况下加入射击功能,所以我写下了这篇FPS开发记录。希望对你有帮助。在这个项目中,你将学习如何设计和实现射击系统、武器系统、玩家控制、场景设计等方面的内容。通过这个项目,你将深入了解游戏开发中的许多核心概念和技术,并且在实践中不断提升自己。本项目将带你从零开始逐步实现一个完整的第一人称射击游戏,并且会逐步引入一些高级功能,如特效、声音等。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 5500

Java EE:6.网络编程套接字(第一弹):基础+Socket+UDP

Java EE:6.网络编程套接字(第一弹):基础+Socket+UDP

要努力去发光,而不是被照亮~ 3654

将 SAP BTP ABAP environment 与 SAP S/4HANA Cloud 公有云版集成:从架构理念到落地实战

本文探讨了在SAP云环境中实现ABAP扩展应用与S/4HANA Cloud系统集成的技术方案。通过建立标准化的远程通信通道,开发者可在SAP BTP ABAP环境中开发扩展应用,同时安全访问S/4HANA Cloud的核心业务数据和服务。文章详细介绍了整体架构设计、开发实现步骤(包括定义通信场景、生成服务消费模型和编写调用代码)以及管理员在S/4HANA侧的配置工作(创建通信安排和技术用户)。通过一个业务伙伴自助注册平台的案例,展示了如何在不修改标准系统的情况下实现云扩展,体现了SAP"干净核心&

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 240

socket编程 netstat 大小端 rpc(grpc) 协程 io yield

接受来自客户端的消息。缓冲区指:操作系统维护的 TCP 接收缓冲区yield把值导出给外部,不会赋值给左侧,调用send给上一次的yield的表达式赋值,即给上一次yield的左侧赋值,如果不调用send直接next,上一次yield左边会是空值,相当于发送空值send(none)

周周的博客 988

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Socket通信原理与实战:从TCP/IP到C#/Python排错指南

Socket是网络编程中连接应用层与传输层的关键抽象。理解其四元组与TCP/IP协议栈的关系,掌握TCP的可靠性机制与UDP的实时性特点,才能在设计服务时做出正确选择。合理配置端口绑定、SO_REUSEADDR、心跳检测及防粘包方案,能显著提升网络服务的稳定性与性能。面对bind地址占用、Connection Refused或MySQL socket文件失效等高频故障,借助netstat、tcpdump等工具进行分层排查是工程实践中的必备技能。本文从Socket底层原理出发,结合C#与Python实操,系统

weixin_33863087的博客 319

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Python网络编程之socket编程(一)--使用TCP和UDP客户端和服务器通信

本文用python进行socket编程,实现客户端和服务器互相发送字符串,并在标准输出打印。 TCP协议版本 下面是客户端程序: import socket sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server_address = ('192.168.33.5', 6666) sock.connect(server_address) message = 'hello,world' sock.sendall(message) 下

web15870359587的博客 287

从0.2到0.5的python____网络编程首体验

是协议地址,让socket找到你的设备(如192.168.34.233,类似于 中国 、广东、深圳、xx区、xx街道、xxxx):端口是用来找到你的程序的(理解为通过房间号找房间就行):是协议,给一个就好,暂时不深究。

weixin_60150720的博客 338

Python UDP socket局域网通信原理与压测实践

UDP是一种无连接、低延迟、不可靠但高吞吐的传输层协议,其核心价值在于为实时音视频、IoT设备通信、游戏同步等场景提供轻量级数据承载能力。理解UDP需掌握端口绑定、缓冲区配置、MTU分片、校验和机制及内核socket参数(如SO_RCVBUF/SO_SNDBUF)等底层原理。技术实践中,Python的socket模块直接封装操作系统API,使开发者能精准控制收发行为,而局域网环境则保障了可控的广播域、确定的MTU和可复现的丢包模式。本文聚焦UDP通信的健壮性构建与压力验证,涵盖心跳保活、序列号防乱序、缓冲区

weixin_34161083的博客 183
上一篇: 『网络安全』蜜罐到蜜网入门指南(三)蜜罐内部组成分析
下一篇: python3「非阻塞socket」报错 “BlockingIOError: [Errno 11]“ 复现以及分析解决
程序员的一天
博客等级 码龄6年 134粉丝 24原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员的一天

~呀哈,感谢支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值