![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
文章平均质量分 56
hubei_dxx
这个作者很懒,什么都没留下…
展开
-
Linux下WaitForSingleObject类似功能
Linux下WaitForSingleObject类似功能线程通信之条件变量Window系统Linux系统线程通信之条件变量Window系统WaitForSingleObjectWaitForSingleObject函数用来检测hHandle事件的信号状态,在某一线程中调用该函数时,线程暂时挂起,如果在挂起的dwMilliseconds毫秒内,线程所等待的对象变为有信号状态,则该函数立即返回;如果时间已经到达dwMilliseconds毫秒,但hHandle所指向的对象还没有变成有信号状态,函数照样原创 2021-08-14 16:46:36 · 1903 阅读 · 0 评论 -
libuv实现ping包发送和接收
目录简介源码简介使用socket函数创建套接字,并与uv_udp_t关联,可以实现对icmp包的发送和接收,实现类似ping命令的功能 uv_loop_t* loop = uv_default_loop(); uv_udp_t* pUdp = new uv_udp_t; int sock = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP); uv_udp_init(loop, pUdp); uv_udp_open(pUdp, sock);源码学原创 2021-06-16 09:40:51 · 610 阅读 · 0 评论 -
libuv使用不当导致的内存泄漏
libuv库使用过程中,发现简单的定时器不关闭对应的句柄会导致内存泄漏;使用文章后面的测试代码缺少uv_close或者uv_loop_close均会导致内存泄漏,关闭的时机也有影响。Detected memory leaks!Dumping objects ->{185} normal block at 0x00FB7860, 32 bytes long.Data: < R z > E8 52 E8 7A 00 00 00 00 00 00 00 00 00原创 2021-06-15 17:38:12 · 831 阅读 · 0 评论 -
libuv实现tcp代理服务器
目录概述API简介uv_err_nameuv_ip4_addruv_tcp_inituv_tcp_binduv_listenuv_accept源码演示概述为了学习libuv的tcp相关函数使用,实现了一个tcp代理服务。1 启动TCP服务2 如果有新的连接X,则向代理地址建立连接Y,并关联X和Y成组3 如果X收到数据包,发往Y;反之如果Y收到数据包发往X4 如果X或者Y连接异常,关闭此组连接5 代理服务退出时,清理所有组,清理TCP服务API简介uv_err_name出现错误可以通过原创 2021-06-15 09:02:26 · 689 阅读 · 0 评论 -
libuv在Windows下环境搭建和演示 - 定时器
目录简述新建项目代码编写编译运行简述之前介绍了libuv库在Windows环境下的编译https://blog.csdn.net/hubei_dxx/article/details/117768529现在我们把编译的库用起来,使用工具VS2010新建项目在解决方案新建项目,选择win32控制台应用程序,名称这里用uv_timer,然后点击确定。把该项目右键设置为启动项。代码编写设置一个定时器,3秒后启动,之后每秒执行,执行5次后停止#include "uv.h"unsigned int原创 2021-06-10 15:21:00 · 586 阅读 · 0 评论 -
libuv在windows环境下编译
libuv在windows环境下编译简介Libuv是一个跨平台的的基于事件驱动的异步io库。但是他提供的功能不仅仅是io,包括进程、线程、信号、定时器、进程间通信等。下面是来自官网对Libuv架构的介绍图。源码下载libuv代码托管地址https://github.com/libuv/libuvv1.x源码下载https://codeload.github.com/libuv/libuv/zip/refs/heads/v1.x准备工具1. cmake-guiCMake安装包下载:链接ht原创 2021-06-10 10:40:15 · 1628 阅读 · 0 评论 -
QQ音乐下载qmc0/3批量转MP3工具
qmc3转MP3工具运行环境:windows7 32bit编译环境:VS2010 + MFC使用方法:1,运行exe文件欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法...原创 2021-06-05 15:13:08 · 2454 阅读 · 0 评论 -
令牌桶限速C++实现
由于业务需求,要对总流量进行限速,做了一个C++版本的实现,基本满足业务要求。有需要的同学自行进行优化。a. 按特定的速率向令牌桶投放令牌b. 当桶中有足够的令牌则报文可以被继续发送下去,同时令牌桶中的令牌量按报文的长度做相应的减少;c. 当令牌桶中的令牌不足时,报文将不能被发送,只有等到桶中生成了新的令牌,报文才可以发送。这就可以限制报文的流量只能是小于等于令牌生成的速度,达到限制流量的目的。生产者按特定的速率向令牌桶投放令牌;消费者查看令牌桶的令牌,令牌充足消费相应数量的令牌,令牌不足丢弃相原创 2021-06-05 17:01:13 · 1892 阅读 · 0 评论