自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 资源 (8)
  • 收藏
  • 关注

原创 python 实现用户登录

参考:https://www.zhihu.com/question/364616467。

2024-04-25 11:25:17 232 1

原创 VNISEdit 制作安装包

下载地址:https://nsis.sourceforge.io/Download。

2024-04-23 17:08:15 574

原创 PyInstaller 打包 exe 文件

.spec定义了一些全局变量。

2024-04-22 13:57:16 748

原创 python 队列

Queue.qsize() 返回队列的大小Queue.empty() 如果队列为空,返回True,反之FalseQueue.full() 如果队列满了,返回True,反之False,Queue.full 与 maxsize 大小对应Queue.get([block[, timeout]])获取队列,timeout等待时间Queue.get_nowait() 相当于Queue.get(False),非阻塞方法Queue.put(item) 写入队列,timeout等待时间。

2024-02-20 11:12:53 1032

原创 python 多线程

python 多线程是指在同一个程序中同时运行多个线程,每个线程都可以独立执行不同的任务。python 中的多线程实现可以通过 threading 模块来实现。

2024-01-29 10:18:41 873

原创 python sqlite3 线程池封装

然后,在执行数据库操作之前,我们使用 lock.acquire() 获取锁,确保只有一个线程可以执行数据库查询。因为在python操作某个数据库的数据的线程必须和创建数据库的线程是同一个线程,不然就会出现异常。check_same_thread=False的作用: python sqlite3的线程模式默认串行, 如果需要再多线程中用一个句柄,需要加此参数,否则将出现上述错误。这种方式可以确保在并发访问sqlite3数据库时,每次只有一个线程可以执行数据库操作,避免了数据竞争和不一致性的问题。

2024-01-24 14:44:20 864

原创 vim 高亮记录操作

创建vimrc文件,并添加以下内容。

2024-01-19 17:54:31 401

原创 Git 操作

首先需要从主库 fork 代码到用户空间下。fork =》拉取代码,应该拉取用户的代码吧首先查看 git remote 信息添加主库 upstream。(是否需要为主库添加 upstream 并且推到远程。禁止 push。

2024-01-19 12:29:46 649

原创 http 返回状态

100 Continue:服务器仅接收到部分请求,但是一旦服务器并没有拒绝该请求,客户端应该继续发送其余的请求。101 Switching Protocols :服务器转换协议:服务器将遵从客户的请求转换到另外一种协议。

2023-12-15 10:23:25 619

原创 python 内置数据结构

并且只能一次添加一个元素,并且只能在列表最后;

2023-12-14 09:20:39 477

原创 fastapi 实践

URL的尾部,即(?如果浏览器地址栏中给出的 URL 是 http://localhost:8000/hello/Ravi/20,Ravi和20的数据将被分别分配给变量name和age。在下面的例子中,一个名为 “X-Web-Framework “的自定义头和一个预定义头 “Content-Language “被添加到操作函数的响应中。如果浏览器的URL包含长度小于3或大于10的参数,如(http://localhost:8000/hello/Tutorialspoint),则会出现适当的错误消息。

2023-12-06 19:05:37 997

原创 flask 异步编程 asyncio

在编写Web应用程序时,有时需要调用可能需要一些时间的外部服务或执行耗时操作的函数。在传统的同步编程中,这将导致整个应用程序阻塞,直到该函数返回结果。为了提高应用程序的性能和响应能力,我们可以使用异步编程。异步编程允许同时处理多个任务,而不会阻塞其他代码的执行。在 Python 中,我们可以使用 asyncio 模块来实现异步代码。asyncio 提供了一种基于协程的方法来编写异步代码,通过使用 async 和 await 关键字来标识异步函数。

2023-12-05 17:30:47 1529

原创 python 协程

协程,又称微线程,纤程。英文名Coroutine。协程不是计算机提供的,是人为创造的上下文切换技术,也可以被称为微线程。简而言之 其实就是在一个线程中实现代码块相互切换执行。

2023-11-30 09:22:06 898

原创 python 生成器的作用

在 python 中,一边循环一边计算的机制,称为生成器:generator.

2023-11-29 12:42:49 1594

原创 tokenizers Tokenizer 类

Tokenizer 函数构造一个分词器对象。分词方式主要有word-level、subword-level、char-level三种,其中,subword-level分词方式又有四种不同实现的方法:BPE、Unigram、WordPiece、SentencePiece。参数 model 表示分词器使用的分词方式,接受一个Model对象,这里主要实现了 word-level 的分词方式以及 subword-level 的分词方式。

2023-11-21 14:35:23 387

原创 requests 实践

r.json() #Requests中内置的JSON解码器,以json形式返回,前提返回的内容确保是json格式的,不然解析出错会抛异常。cookie:保存的用户登录信息,比如做一些充值功能,但是需要用户已经登录,需要 cookie 信息的请求信息传输。当协议是 https 的协议的时候,有些系统,需要校验 https 证书,如果校验失败,可能会有警告提示等信息。params:请求数据中的链接,常见的一个 get 请求,请求参数都是在 url 地址中。stream :文件下载功能,通过请求方式,下载文件。

2023-10-27 14:25:52 148

原创 flask 实践

2.当访问 download 路由时,会触发download_file 函数,该函数使用send_file 方法将文件发送到客户端以进行下载。3.as_attachment=True 表示将文件作为附件下载,而不是在浏览器中直接打开。浏览器中输入 http://192.168.98.169:9001/download。1.filename 变量中提供要下载的文件的路径。

2023-10-27 13:49:37 527

原创 postgresql 实践

参考:http://www.lvesu.com/blog/main/cms-532.html。

2023-10-27 10:38:38 448 1

原创 pydantic 实践

name: str这里,我们给出一个较为复杂的基于pydantic的schema定义实现样例。name : strname : strname: str需要注意的是,我们除了可以一步一步地实例化之外,如果我们已经有了一个完整的Company的内容字典,我们也可以一步到位地进行实例化。

2023-10-27 10:27:28 474

原创 python 离线安装

下载".whl"文件,网址:PyPI · The Python Package Index。下载".tar.gz"文件,网址:PyPI · The Python Package Index。这种方法就不会报SSL的错误了,但有的包只有.whl文件,没有.tar.gz文件。最后,需要注意的是,有些包由于系统的不同,而不适用,要对这些包做单独的下载。这种方法好像也要联网,有时会报SSL error。将项目整个压缩,上传到服务器上,解压,然后执行命令。项目根目录下执行命令。

2023-10-27 10:11:39 69

原创 conda 实践

下面这个网址查找自己需要的版本或者手动下载。

2023-10-27 09:42:39 467

原创 TCP 协议(五)异常报文

1.[TCP Dup ACK xxx#y](重复应答)2.[TCP Fast Retransmission](快速重传)3.[TCP Retransmission](超时重传)4.[TCP Out-Of-Order](报文乱序)5.[TCP Previous segment not captured](报文缺失)

2023-07-12 16:55:58 667

原创 TCP 协议(四)重传与超时

本博客从TCP重传、超时、拥塞控制、流量控制等方面进行了深入探讨,以帮助读者更好地理解TCP协议在网络传输过程中如何确保数据的可靠性和高效性。我们详细分析了各种重传原理、触发条件和优化策略,以及超时检测、动态调整和与重传的关系。同时,我们还探讨了拥塞控制与流量控制在调整网络传输速率、协同作用以确保网络稳定性的重要性。在实践中,我们针对不同的网络环境提供了优化策略,并对常见性能问题进行了分析和解决。此外,我们还展望了未来TCP重传与超时的发展趋势,为进一步提高网络性能提供了指导。

2023-07-12 16:53:58 2787

原创 TCP 协议(三)十种核心机制

1.确认应答(可靠机制)2.超时重传(可靠机制)3.连接管理(可靠机制)4.滑动窗口(效率机制)5.流量控制(效率机制)6.拥塞控制(效率机制)7.延时应答(效率机制)8.捎带应答(效率机制)9.面向字节流(粘包处理)10.特殊情况(异常处理)

2023-07-10 18:34:47 912

原创 TCP 协议(二)连接与断开

1.确认双方的接受和发送能力是否正常。2.指定自己的初始化序列号,为后面的可靠传送做准备。序列号能够保证数据包不重复、不丢弃和按序传输。3.如果是 https 协议的话,三次握手这个过程,还会进行数字证书的验证以及加密密钥的生成到。接下来以三个方面分析三次握手的原因:三次握手才可以阻止重复历史连接的初始化(主要原因)三次握手才可以同步双方的初始序列号三次握手才可以避免资源浪费总结:两次握手:无法防止历史连接的建立,会造成双方资源的浪费,也无法可靠的同步双方序列号;

2023-07-10 18:31:58 3935

原创 TCP 协议(一)报文结构

TCP 提供面向连接的通信传输,面向连接是指在传送数据之前必须先建立连接,数据传送完成后要释放连接。无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接。在TCP/IP协议中,TCP协议提供可靠的连接服务,连接是通过三次握手进行初始化的。同时由于TCP协议是一种面向连接的、可靠的、基于字节流的运输层通信协议,TCP是全双工模式,所以需要四次挥手关闭连接。

2023-07-07 17:43:43 4877

原创 网络体系结构

与其它计算机进行通讯的一个应用,它是对应应用程序的通信服务的。例如,一个没有通信功能的字处理程序就不能执行通信的代码,从事字处理工作的程序员也不关心OSI的第7层。但是,如果添加了一个传输文件的选项,那么字处理器的程序就需要实现OSI的第7层。示例:TELNET,HTTP,FTP,NFS,SMTP等。

2023-07-07 17:42:05 61

原创 VLC 使用技巧

VLC Live555 流传输模式是 HTP,本文修改为 RTP over RTSP (TCP) 模式。本文介绍配置 VLC 以播放基于 TCP 的 RTSP/RTP 流。在穿过一个没有开放 UDP 的防火墙 / 路由的情况下这种模式的流被认为表现的更好。(笔者 VLC 版本 3.0.18,64 位 Windows 10 专业版下配置成功)以下未验证:默认情况下,VLC 配置的缓冲很小。这将导致播放起来断断续续的,随着时间推移这个会慢慢消除,因为 VLC 会自动把这一缓存给调大。

2023-07-07 14:09:10 1017

原创 docker学习(十)docker 持久化存储

数据卷是经过特殊设计的目录,可以绕过联合文件系统(UFS),为一个或者多个容器提供访问,数据卷设计的目的,在于数据的永久存储,它完全独立于容器的生存周期,因此,docker 不会在容器删除时删除其挂载的数据卷,也不会存在类似的垃圾收集机制,对容器引用的数据卷进行处理,同一个数据卷可以只支持多个容器的访问。

2023-07-04 11:10:09 1526

原创 docker学习(九)docker 调试

daemon.json文件可以用来配置几乎所有的守护进程配置选项。案例:运行时目录和存储驱动的配置上述配置中,data-root选项设置的是运行目录(docker 镜像、容器、卷所用的磁盘空间)。storage-driver选项设置的是存储驱动。

2023-07-03 14:16:19 624

原创 docker学习(七)docker daemon

远程访问的时候,需要保证两台服务器的API版本一致,通过“docker version”版本信息查看指令。默认情况下,Docker的守护进程使用的是“unix”模式来实现与客户端的通信。这里需要用“tcp”模式来进行网络交互。有两种方式配置:首先,在 docker daemon 配置文件 /lib/systemd/system/docker.service 中的“ExecStart”选项后,添加“tcp”协议的配置。Ps:目前笔者使用的 Docker 20.10.0-ce版本。

2023-06-30 16:48:17 2647

原创 docker学习(六)卷 Volume

docker本身提供了一种机制,可以将主机上的某个目录与容器的某个目录(称为挂载点、或者叫卷)关联起来,容器上的挂载点下的内容就是主机的这个目录下的内容,这类似linux系统下mount的机制。这样的话,我们修改主机上该目录的内容时,不需要同步容器,对容器来说是立即生效的。挂载点可以让多个容器共享。

2023-06-30 14:07:35 543

原创 docker学习(五)使用 Dockerfile 制作镜像

Dockerfile文件需放置在一个目录中,这个目录中有构建镜像的所有文件,是本次执行的上下文路目录(可以理解为docker根目录),可以创建子目录。在Dockerfile文件中,"#“号开头表示注释,每行为"INSTRUCTION arguments”,习惯大写表示关键字(但并不区分大小写),后面小写表示值。每个Dockerfile的第一行(注释行除外),必须使用"FROM"关键字。当使用docker build构建镜像时,会将我们指定的上下文目录打包传递给docker引擎。

2023-06-30 14:06:18 1251

原创 docker学习(四)使用 commit 制作镜像

制作Docker镜像,一般有两种方式:一种是commit方式,利用已有的镜像,运行后安装定制自己需要的环境,然后生成镜像;另一种就是build方式,通过编写Dockerfile命令脚本进行生成镜像。本文介绍使用commit制作镜像,并配置容器内程序自动启动。

2023-06-30 14:03:33 2133

原创 docker学习(三)常用命令

1.docker环境信息 — docker [info|version]2.容器生命周期管理 — docker [create|exec|run|start|stop|restart|kill|rm|pause|unpause]3.容器操作管理 — docker [ps|inspect|top|attach|wait|export|port|rename|stat]4.容器rootfs命令 — docker [commit|cp|diff]

2023-06-30 13:59:54 1748

原创 docker学习(一)docker 概述

Docker 是一个开源的应用容器引擎,基于 Go 语言,并遵从 Apache2.0 协议开源。它可以让开发者打包应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。Docker 可用于开发应用、交付应用、运行应用等场景。容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。Docker 允许用户将基础设施中的应用单独分割出来,形成更小的部分容器,从而提高软件交付速度。

2023-06-30 13:50:42 931

原创 ZLMediaKit 安装使用

ZLMediaKit在Windows上实现Rtmp流媒体服务器以及模拟rtmp推流和http-flv拉流播放。ZLMediaKit 服务器源码解读—广播、通知中心(NoticeCenter)ZLMediaKit 服务器源码解读—WebApi。zlmediakit的hls高性能之旅。

2023-06-30 13:41:45 325

原创 ZLMediaKit源码分析(六)http 点播

ZLMediaKit 使用 http1.1,而 http1.1 是基于 TCP 的。

2023-06-27 13:37:03 541

原创 ZLMediaKit源码分析(五)代理服务

排好序之后,回调到最顶层RtspPlayer::onRtpSorted()。RtspPlayer::onRtpSorted() 排好序之后,回调到最顶层。实际为RtspPlayer::handleResDESCRIBE()。RtspPlayer::_on_response 注册 OPTIONS 返回回调函数 RtspPlayer::sendDescribe()。RtspPlayer::_on_response注册PLAY回调。实际为RtspPlayer::handleResPAUSE()。

2023-06-15 20:02:33 948

原创 ZLMediaKit源码分析(四)重封装

(H264Track继承自)VideoTrack继承自Track继承自CodecInfo和FrameDispatcher继承自FrameWriterInterface。(H264Track继承自)VideoTrack继承自Track继承自CodecInfo和FrameDispatcher继承自FrameWriterInterface。H264Track继承自VideoTrack继承自Track继承自CodecInfo和FrameDispatcher继承自FrameWriterInterface。

2023-06-15 19:44:50 1270

网络多线程传输实例

这是运用Qt5.3.0编写的,网络多线程编写的传输软件,包括服务器模式和客户端模式。可以获取本地端和远程端文件目录,以及客户端上传功能和服务器端接收功能。

2014-08-13

对象树与拥有权(析构函数)

主要讲解Qt中的对象树与拥有权,析构函数的应用

2013-08-23

Qt的容器类

主要讲解Qt容器类,附有代码注释讲解。很清楚。

2013-08-23

Qt事件系统

主要是Qt时间系统的注意事项,附有代码注释,讲解。

2013-08-23

LINUX操作系统之奥秘.pdf

主要描述,Linux系统引导的原理及步骤

2013-06-29

Ubuntu和Windows7双系统修改启动顺序问题

Ubuntu和Windows7双系统修改启动顺序问题

2013-06-28

Linux内核编译步骤

内核编译的主要步骤。2.4与2.6有所不同。

2013-03-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除