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

原创不易,点个赞呗!

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

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

猜你喜欢

转载自blog.csdn.net/pythontide/article/details/109199547
今日推荐