python3 tcp的粘包现象和解决办法解析
作者:lilyxiaoyy 发布时间:2022-08-02 02:22:53
标签:python,3,tcp,粘包,解决
这篇文章主要介绍了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
来源:https://www.cnblogs.com/lilyxiaoyy/p/12002690.html


猜你喜欢
- 请问论坛的树状记录表是怎么展开的?如何做?论坛的这种展开技术一般采用两种方法实现,一种是采用递归的方法,优点是逻辑简单,编程简单,缺点是速度
- 1. 正则表达式基础1.1. 简单介绍正则表达式并不是Python的一部分。正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个
- 有开发的同事反映远程登录SQL Server操作报错,索引超出了数组界限等如下图线上数据库版本为SQL Server2012 R2,检查后发
- 相信很多程序员在调试代码时,都用过 print。代码少还好说,如果是大型项目,面对众多 print 的输出结果,可能要头大了。今天推荐一个
- 前言你有没有经常好奇一些音乐软件的频谱特效是怎么做的,为什么做的这么好看?有没有想试试自己提取音乐频谱并可视化展现出来?今天,咱就结合上次的
- 周六。据闻北服美女甚多,于是应邀去做了一个关于UED的讲座。人不多,讲的很乱,但大家听的很认真,欣慰。讲完之后回答了很多关于社区、搜索、设计
- php从5.2.x升级到5.3.2.出来问题了。有些原来能用的程序报错了。报错内容是Deprecated: Function session
- 背景:不久前,设计实现了京东api的功能,发现如果换了其它快递再重新设计,岂不是会浪费太多的时间,所以选个第三方提供的快递API是最为合理的
- break 语句Python break语句,就像在C语言中,打破了最小封闭for或while循环。break语句用来终止循环语句,即循环条
- 一、数学函数ABS(x) 返回x的绝对值BIN(x) 返回x的二进制(OCT返回八进制,HE
- 操作命令:show binlog events in 'mysql-bin.000016' limit 10;reset m
- 【OpenCV】⚠️高手勿入! 半小时学会基本操作 ⚠️ 图像轮廓概述OpenCV 是一个跨平台的计算机视觉库, 支持多语言, 功能强大.
- 新浪中用来显示flash的函数,格式化后大家可以用啊sinaflash.js/** * @author&n
- Python 读取 .gz 文件读取.gz 文件需要使用gzip 包,如果没有安装可以自行在终端安装pip install gzipimpo
- if (arr[i]){ &nb
- 本文实例讲述了python config文件的读写操作。分享给大家供大家参考,具体如下:1、设置配置文件[mysql]host = 1234
- 不通过数据源名DSN也能访问Access数据库吗?代码如下:<% dim conn &nbs
- 本文实例讲述了Python学习笔记基本数据结构之序列类型list tuple range用法。分享给大家供大家参考,具体如下:list 和
- 安装包网盘下载链接:链接: https://pan.baidu.com/s/1TLLeCnNkHtuTiAxHBl39hg 提取码: 9yg
- 在项目中遇到了个json数据需要解析,利用Python脚本尝试分享给大家如下:import osimport pandas as pdimp