python3 tcp的粘包现象和解决办法解析


Posted in Python onDecember 09, 2019

这篇文章主要介绍了python3 tcp的粘包现象和解决办法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

服务器端

import socket
sk = socket.socket()
sk.bind(("127.0.0.1", 6666))
sk.listen()
conn, address = sk.accept()
def my_send(msg):
  bs = msg.encode("utf-8")
  len_str = format(len(bs), "04d") # 定长4位
  conn.send(len_str.encode("utf-8"))
  conn.send(bs)
my_send(input(">>>:").strip())
my_send(input(">>>:").strip())

客户端

import socket
import time

sk = socket.socket()
sk.connect(("127.0.0.1", 6666))

time.sleep(10) # 制造粘包情况
msg = sk.recv(1024).decode("utf-8") # 粘包现象
print(msg)

执行结果:

0004aaaa0003bbb

有粘包的现象。

解决粘包,客户端代码调整

import socket
import time
sk = socket.socket()
sk.connect(("127.0.0.1", 6666))
time.sleep(10)
def my_recv():
  len_str = int(sk.recv(4).decode("utf-8"))
  msg = sk.recv(len_str)
  print(f"来自服务端的消息:{msg.decode('utf-8')}")
my_recv()
my_recv()

执行结果:

来自服务端的消息:aaaa
来自服务端的消息:bbb

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python初学时购物车程序练习实例(推荐)
Aug 08 Python
python 识别图片中的文字信息方法
May 10 Python
flask session组件的使用示例
Dec 25 Python
python实现微信每日一句自动发送给喜欢的人
Apr 29 Python
Python实现字符型图片验证码识别完整过程详解
May 10 Python
elasticsearch python 查询的两种方法
Aug 04 Python
python实发邮件实例详解
Nov 11 Python
python shutil文件操作工具使用实例分析
Dec 25 Python
tensorflow 实现打印pb模型的所有节点
Jan 23 Python
python实现FTP循环上传文件
Mar 20 Python
python查看矩阵的行列号以及维数方式
May 22 Python
Python常见反爬虫机制解决方案
Jun 01 Python
python绘制规则网络图形实例
Dec 09 #Python
Spring实战之使用util:命名空间简化配置操作示例
Dec 09 #Python
python爬虫模拟浏览器的两种方法实例分析
Dec 09 #Python
Python二次规划和线性规划使用实例
Dec 09 #Python
Python Numpy数组扩展repeat和tile使用实例解析
Dec 09 #Python
如何将 awk 脚本移植到 Python
Dec 09 #Python
Python 读取 YUV(NV12) 视频文件实例
Dec 09 #Python
You might like
discuz 首页四格:最新话题+最新回复+热门话题+精华文章插件
2007/08/19 PHP
mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc的区别
2009/04/24 PHP
PHP 开源AJAX框架14种
2009/08/24 PHP
PHP爆绝对路径方法收集整理
2012/09/17 PHP
thinkphp模板继承实例简述
2014/11/26 PHP
从性能方面考虑PHP下载远程文件的3种方法
2015/12/29 PHP
Yii2中关联查询简单用法示例
2016/08/10 PHP
JavaScript中的对象化编程
2008/01/16 Javascript
jQuery实现DIV层淡入淡出拖动特效的方法
2015/02/13 Javascript
jQuery实现类似淘宝网图片放大效果的方法
2015/07/08 Javascript
js实现接收表单的值并将值拼在表单action后面的方法
2015/11/23 Javascript
JS简单实现String转Date的方法
2016/03/02 Javascript
JS+CSS实现闪烁字体效果代码
2016/04/05 Javascript
Node.js Mongodb 密码特殊字符 @的解决方法
2017/04/11 Javascript
JS简单实现父子窗口传值功能示例【未使用iframe框架】
2017/09/20 Javascript
Vue 过滤器filters及基本用法
2017/12/26 Javascript
html2canvas属性和使用方法以及如何使用html2canvas将HTML内容写入Canvas生成图片
2020/01/12 Javascript
JavaScript实现拖拽和缩放效果
2020/08/24 Javascript
五句话帮你轻松搞定js原型链
2020/12/09 Javascript
使用python在校内发人人网状态(人人网看状态)
2014/02/19 Python
Python中的zip函数使用示例
2015/01/29 Python
详解C++编程中一元运算符的重载
2016/01/19 Python
python画图的函数用法以及技巧
2019/06/28 Python
Python 格式化输出_String Formatting_控制小数点位数的实例详解
2020/02/04 Python
Python3 + Appium + 安卓模拟器实现APP自动化测试并生成测试报告
2021/01/27 Python
纯CSS3代码实现switch滑动开关按钮效果
2016/08/30 HTML / CSS
HTML5给汉字加拼音收起展开组件的实现代码
2020/04/08 HTML / CSS
全球速卖通西班牙站:AliExpress西班牙
2017/10/30 全球购物
会计与审计专业大专生求职信
2013/10/03 职场文书
金融专业大学生自我评价
2014/01/09 职场文书
美化环境标语
2014/06/20 职场文书
简历自我评价优缺点
2015/03/11 职场文书
2016年习总书记讲话学习心得体会
2016/01/20 职场文书
2019年共青团工作条例最新版
2019/11/12 职场文书
Pillow图像处理库安装及使用
2022/04/12 Python
Win11 21h2可以升级22h2吗?看看你的电脑符不符合要求
2022/07/07 数码科技