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

python 同时被 2 个专栏收录
7 篇文章 0 订阅
1 篇文章 0 订阅

原创不易,点个赞呗!

一般情况,我们并不关心 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.

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

  • 4
    点赞
  • 2
    评论
  • 7
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

评论 2 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:黑客帝国 设计师:我叫白小胖 返回首页

打赏作者

程序员的一天

~呀哈,感谢支持

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值