- 博客(13)
- 资源 (4)
- 问答 (1)
- 收藏
- 关注
原创 16进制字符串和字节流转换函数
16进制字符串和字节流转换函数使用查表方法/*函数功能:"123456" ==> 0x12,0x34,0x56输入参数:source 源数据指针 sourceLen 源数据长度输出参数:dest 输出数据 返回值:正数 输出数据长度;负数 入参错误*/int HexStrToByte(const char* source, int sourceLen, unsigned char* dest) { int i; unsig
2021-11-03 14:53:06
232
原创 Linux下WaitForSingleObject类似功能
Linux下WaitForSingleObject类似功能线程通信之条件变量Window系统Linux系统线程通信之条件变量Window系统WaitForSingleObjectWaitForSingleObject函数用来检测hHandle事件的信号状态,在某一线程中调用该函数时,线程暂时挂起,如果在挂起的dwMilliseconds毫秒内,线程所等待的对象变为有信号状态,则该函数立即返回;如果时间已经到达dwMilliseconds毫秒,但hHandle所指向的对象还没有变成有信号状态,函数照样
2021-08-14 16:46:36
2189
原创 linux-arm编译报错m4: unrecognized option ‘--gnu‘
linux-arm编译libuv第一步执行./autogen.sh报错,网上说的是autoconf和automake没有安装。结论:m4版本比较老,不支持某些新的特性导致执行./autogen.sh报错,更新到1.4.19版本重新执行成功m4: unrecognized option ‘–gnu’Try `m4 --help’ for more information.autom4te: m4 failed with exit status: 1aclocal: error: echo fail
2021-06-21 11:28:54
923
原创 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
691
原创 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
1019
原创 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
928
原创 libuv在Windows下环境搭建和演示 - 定时器
目录简述新建项目代码编写编译运行简述之前介绍了libuv库在Windows环境下的编译https://blog.youkuaiyun.com/hubei_dxx/article/details/117768529现在我们把编译的库用起来,使用工具VS2010新建项目在解决方案新建项目,选择win32控制台应用程序,名称这里用uv_timer,然后点击确定。把该项目右键设置为启动项。代码编写设置一个定时器,3秒后启动,之后每秒执行,执行5次后停止#include "uv.h"unsigned int
2021-06-10 15:21:00
754
原创 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
1874
原创 令牌桶限速C++实现
由于业务需求,要对总流量进行限速,做了一个C++版本的实现,基本满足业务要求。有需要的同学自行进行优化。a. 按特定的速率向令牌桶投放令牌b. 当桶中有足够的令牌则报文可以被继续发送下去,同时令牌桶中的令牌量按报文的长度做相应的减少;c. 当令牌桶中的令牌不足时,报文将不能被发送,只有等到桶中生成了新的令牌,报文才可以发送。这就可以限制报文的流量只能是小于等于令牌生成的速度,达到限制流量的目的。生产者按特定的速率向令牌桶投放令牌;消费者查看令牌桶的令牌,令牌充足消费相应数量的令牌,令牌不足丢弃相
2021-06-05 17:01:13
2043
原创 QQ音乐下载qmc0/3批量转MP3工具
qmc3转MP3工具运行环境:windows7 32bit编译环境:VS2010 + MFC使用方法:1,运行exe文件欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法...
2021-06-05 15:13:08
2987
原创 求X的N次方根
数学库函数扩展y与x符号相同,n不为0,主要使用pow函数进行拓展,返回值为0.0表示输入参数有误,其他为计算结果。double sqrtn(double x, unsigned int n){ double y = 0.0; double r = 1.0; int negtaive = 1; if (n == 0) { return 0.0; } if (n == 1) { return x;
2021-06-05 09:49:24
1489
原创 Makefile模板
#############################################################################target you can change test to what you want#共享库文件名,lib*.soTARGET := test.so#compile and lib parameter#编译参数CC ...
2019-07-17 14:28:22
106
原创 加密传输网关NAT穿越问题分析(一)
工作中把原本在局域网运行的加密传输网关配置成NAT出现会话协商OK,两侧的流量不通。测试环境:centos7加密网关两台路由器1台windows7 pc两台网络拓扑如图:问题现象:网关之间协商通,密钥可以同步,内网PC机1 192.168.31.50可以ping通PC机2 1.1.2.200,在软件ByPass的情况下PC1可以正常访问PC2,但是PC1的UDP流量可以发送到PC2,...
2019-06-04 11:42:35
865
libuv1.41.zip
2021-06-10
windows下字符集转换基于libiconv-1.14 VS2010编译
2017-09-19
java模拟登录记住cookie还是无法访问须登录才能访问的页面
2014-10-03
TA创建的收藏夹 TA关注的收藏夹
TA关注的人