赞
踩
原创不易,点个赞呗!
一般情况,我们并不关心 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.
工作之余,喜欢写些东西,涉及编程、生活、热点等。感兴趣的微信朋友,可以搜一搜公众号:【程序员的一天】,欢迎关注、支持,谢谢!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。