- 博客(59)
- 资源 (6)
- 收藏
- 关注
原创 lamda表达式,以及sizeof表达式的返回值
c++11有支持lamda,但是这个东西,个人用不习惯,所以用的不多。最近看了一些库的源码,里面用了挺多lamda表达式的,因此网上查了一些资料,在这里做个记录。这种情况下,lamda对象的大小是4字节,特点是在定义lamda对象后,如果修改引用参数的数值,lamda对象内的a的值会随之改变。可见,lamda是个匿名的函数对象。既然是对象,那肯定有size了,最小就是1个字节。这种情况下,lamda对象的大小就是4个字节(32位系统)这种情况下,obj的大小就是1个字节。3. lamda对象的大小。
2023-06-15 15:15:11
834
原创 libwebsockets使用记录
后来变成多个客户端访问后,又出现了crash的问题,而且问题看上去和第一次高频通讯,发生trunc后crash一样。网上查了资料后,感觉方向可能是堆栈太小导致的,后来讲堆栈放大一点(放大了10倍,100K字节),问题就再也没有发生过。原因在于,一开始在callback外面,直接调用lws_write去发送数据。之前基于libwebsockets做了实时的web socket通讯,多个客户端访问,报文按照50ms传输。1. 高频通讯过程中,写数据发生trunc错误,导致程序崩溃。2. 多个客户端访问。
2023-04-12 10:20:04
688
1
原创 vs基于hiredis.lib生成可执行文件/dll
windows vs编译基于redis的客户端程序,报错,未定义_replace_setsockopt和_strerror_r。但是已经添加win32fixes.c文件
2023-04-10 17:45:11
246
原创 libcurl上传、下载获取进度
通过libcurl的CURLOPT_XFERINFOFUNCTION和CURLOPT_XFERINFODATA,获取上传、下载文件的进度
2022-09-30 14:54:31
2862
原创 docker服务无法关停的原因
docker服务无法关停的原因在于,如果没有关闭docker.socket服务,那么只要执行docker指令,docker.socket就会激活docker服务
2022-08-06 11:06:32
5665
原创 Linux服务程序在容器外执行容器内的脚本
以服务形式(通过systemctl或者/update-rc.d管理的程序)运行的程序,执行容器内的脚本或者指令时,需要删除 “-ti"
2022-06-24 16:35:42
650
原创 linux64位系统兼容32位程序(不下载兼容包)
64位系统兼容32位系统,正常通过apt指令安装兼容包即可。也就是两条命令的事情:apt-get install gcc-multilibapt-get install g++-multilib安装完后,32位的程序就可以在硬件上跑了。但是现场已经在使用的硬件产品,因为硬件网络是定向网络(IOT定向卡,限定了访问的IP地址,目前无法访问163和交大的源),所以这些设备上无法执行apt指令。当然,可以在公司将需要的deb下载下来,然后升级的时候,目标设备下载下来后,dpkg -i来安装这些
2022-04-21 17:21:48
3460
原创 Docker容器内网络通讯的怪问题
最近项目碰到了一些问题,因为自己认知能力的问题,导致这些问题看起来非常古怪,不合常理。在这里记录一下,以后如果自己在其它地方找到答案了,到时候回过头来更新一下。网络结构如下所示:网关与目标设备device1, device2, device3通过交换机进行连接。网关内创建有C1,C2,C3这3个容器,分别于device1, device2, device3通讯。运行过程中,出现了有意思的问题是,device1~3中任意一个发生断电,比如device1断电了,那么会产生这个现象:1. c1内的
2022-01-31 17:45:27
1724
原创 opc采集数据(DCOM配置没有问题,但是无法建立连接)
虽然之前使用过opc来采集数据,但是因为这块的内容不是自己负责的,所以也就是知道怎么去用,代码的一些细节没有看过。2021年负责这个的伙伴离职了,因此有的时候必须得自己上了。恰好1月份某钢铁厂的项目中,针对西门子840D,碰到了一个有意思的问题。就是DCOM配置是没有问题的,在网关内通过测试工具,可以读取设备的CLSID,也可以连接上设备,读取数据。但是我们自己的代码,无法连接设备,另外,Matrikon的客户端也无法连接。通过单步调试,发现问题是出在每次到了这里就是fail。wireshark
2022-01-31 17:14:32
2259
原创 docker使用的记录
这段时间稍稍使用了docker,以后不见得能用到,好记性不如烂笔头,记录一下1. docker的安装添加源sudoadd-apt-repository \ "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/debian\$(lsb_release -cs)\ stable"安装命令:sudo apt-get install docker-ce docker-ce-cli contai...
2022-01-28 17:08:40
1549
原创 (docker)容器内使用IPV6
关于这个话题,其实在csdn上找,能找出很多帖子。但是大部分都令人失望,就是按照帖子上去配置,容器内网络是无法通的。最后找到了这个帖子:https://www.modb.pro/db/98021按照这个老哥的操作,坐下来,算是真正成功了。感谢这个老哥,尤其是这个的这段话,简直就是精华:另外,下面这个链接,IPv6 Subnet Calculator - subnettingpractice.com可以用来计算fixd-cidr-v6的数值,按照老哥在文中的步骤,1,2,3,4去.
2022-01-06 14:53:44
1059
原创 go开发的程序在windows中作为服务启动后处于SERVICE_START_PENDING
上周对现场windows网关进行软件安装时,发现一个问题。就是部分网关内的软件没有升级成功,原因有多个,不过其中有一个盒子,情况比较有意思,就是盒子中用go写的服务都没有真正处于运行状态,而是处于SERVICE_START_PENDING状态。因为这个原因,导致程序无法升级。 一开始只是怀疑这个问题是nssm配置不对引起的,不过后来我重新做了测试验证,发现,与猜测的不符合。 周末上网查了下资料,发现,golang开发的程序,作为windows系统的服务,一直有这个...
2022-01-06 14:36:02
1367
原创 不同设备拿到了相同的mac地址(arp和nbtstat)
通过arp查到组网设备使用了同一个mac地址,不过用nbtstat可以获取到真正的mac地址
2022-01-01 20:17:23
3669
1
原创 使用jigdo下载历史版本的debian镜像
上次项目碰到了两个问题,一个是无法将opencv在64位的系统中编译成32位的库,这个的话,后来通过一通摸索,也算是解决了问题(当然,关于CMAKE的使用,还是要加强学习)。另外一个问题,就是当时需要下载一个32位的debian10.4的镜像(因为当时我找不到办法在64位系统中编译32位的opencv库,所以想下载一个32位的镜像,然后在这个32位的镜像中编译opencv),然后去debian网站看了一圈,发现已经没有可以直接下载debian32位iso文件的链接了。对于历史版本,需要通过jigdo这个工具
2021-12-24 12:47:17
3095
原创 seetaface非法指令集
项目中使用了seetaface6来做人脸识别,程序在虚拟机和服务器中都可以跑起来,所以当时就认为没什么问题了。谁知道移植到网关中运行后,直接崩溃,非法指令集。两者的差别是什么呢?服务器和网关都是基于X86架构的,虚拟机和服务器都是64位的机器,而网关是32位的机器,难道需要编译成32位的程序?为了验证这个想法,重新编译所有的seetaface的库,尤其是那个tennis,让人蛋疼,一搞就是5个小时。还有那个opencv,也让人蛋疼。最后编译出来了,结局让人心碎,还是非法指令集。这也不行啊
2021-12-20 10:45:28
1208
原创 64位系统中编译32位的opencv库
这两天真的有被项目折磨到,为了验证自己的一个想法,需要在64位的机器上使用32位的opencv的库。其实这个库可以通过apt去下载,但是我使用的系统中,用的软件可以依赖关系有点杂乱吧,导致我apt install的时候,无法直接安装。如果使用aptitude安装的话,又会移除一堆软件,再重新安装一大堆包,总之,看了让我心里没有底,怕影响到其它软件的正常运行。最后,就选择基于源码去编译。一开始想法是通过在CMake的时候传入PLATFORM参数来进行设置,但是失败了。网上查了资料,没有找可用的方案。有个兄
2021-12-20 10:19:14
3092
原创 老设备连接samba服务器
最近项目中,需要支持老掉牙的设备的DNC功能。该设备通过samba服务器,访问网关的文件夹,实现DNC功能。在网关中(该网关使用debian系统)安装完samba,并且配置好后,有意思的事情发生了:1. 同事A和B的电脑都可以通过samba访问debian网关的文件夹,但是我的电脑就是不行。2. 目标设备(也就是那个老的掉渣的设备),无法通过samba访问debian网关的文件夹。3. 在另一个网关(ubuntu16的系统,后面简称u16,也安装了samba),目标设备可以通过samba访问u1
2021-12-14 14:39:17
1074
原创 modprobe vboxsf failed问题修复
前两天在虚拟机调试时,在排查问题时,对内核进行了升级。升级后,虚拟机的共享文件夹就无法使用了。按照网上找的资料,建议几乎都是重新安装VirtualBox Guest Addtions。然后Linux下安装这个东西基本就是分下面几步:1. 在virtualbox中加载VBoxGuestAddtions.iso,如下所示:这一步操作之后,在宿主机上,可以看到CD-Rom盘中,会出现VirtialBox Guest Addions,如下所示:2. 将cd-rom中的内容映射到另一个文件夹.
2021-12-08 16:56:27
1579
原创 debian下切换内核
最近在硬件上测试拨号,在排除问题的过程中,升级了内核。结果升级完后,不但不能解决问题,反而带来了新的问题。因此需要将内核版本降下来。网上参考了很多文章,经过了一番测试,最后算是解决了问题。在此记录一下,一方面怕自己时间长了忘记了,另一方面,如果有网友碰到类似的问题,可以借鉴。话不多说,有效的解决办法有两种:1. 修改/etc/default/grub文件关于修改这个文件,无论是csdn还是stackexchange等网页上,都提到可以修改该文件中的GRUB_DEFAULT参数来实现内核的切换。并
2021-12-07 14:11:42
4220
tscancode在windows下的2进制可执行文件,64位
2024-08-17
vc实现类似vxworks下消息队列和信号量的功能
2011-09-14
我写的登录程序
2007-10-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人