- 博客(35)
- 收藏
- 关注
原创 编译http库时候出现报错
严重性 代码 说明 项目 文件 行 禁止显示状态 错误 C4996 'boost::asio::basic_socket<Protocol,StreamSocketService>::cancel': By default, this function always fails with operation_not_supported when used on Windows XP, Windows Server 2003, or earlier. Consult documentation for det
2024-06-05 14:33:15
193
原创 mysql 提示SELECT list is not in GROUP BY clause and contains nonaggregated column whic
Windows操作系统中的MySQL配置文件是“my.ini”,位置一般在MySql安装的根目录下,也有可能在隐藏文件夹“ProgramData”下面;而Linux操作系统中的MySQL配置文件是“my.cnf”,位置一般在“/etc/my.cnf”或“/etc/mysql/my.cnf”目录下。查出的值,删除ONLY_FULL_GROUP_BY,或者直接使用下面sql重新设置sql_mode。找到my.cnf,修改配置文件my.cnf。但是此方法mysql重启后可能会恢复。重启mysql即可。
2024-05-10 17:22:56
224
原创 std::enable_shared_from_this
是一个模板类,用于赋予继承它的类能够从其成员函数中安全地生成该对象的。当你有一个由管理的对象,并希望在该对象的成员函数内部获得一个指向自身的时,就非常有用。这在异步操作、事件处理回调或任何需要延长对象生命周期以等待某些操作完成的场景中特别有价值。值得注意的一点是shared_ptr可以直接用指向对象的指针来构造,但是不推荐这样,因为如果同时声明了两个这样的shared_ptr就会造成对同一空间的重复删除。那么我们在遇到一个希望从自身复制出shared_ptr的情况的时候,就可能会遇到下面的代码。
2024-03-14 11:06:11
390
原创 Windows开发:退出程序
在使用return退出或者exit退出时,会遇到部分资源未释放,退出异常崩溃(线程等未释放等情况),可以采用ExitProcess和TerminateProcess等。退出释放资源太多,也没有什么必要的释放,这种情况下,可以不用采用常规的退出,采用exit,ExitProcess,TerminateProcess等方式退出。另外,不管使用什么方式退出进程,只要进程退出后,进程所有的系统资源将被系统回收(包括非正常退出),但需要在退出前自己清理资源。但是在非主线程,我们可以同步到主线程中退出。
2024-01-05 14:21:31
437
原创 计算机网络基础(传输模式)
在计算机网络中,传输模式主要分为三种:单工(Simplex)、半双工(Half-Duplex)和全双工(Full-Duplex)。这些模式定义了数据传输的方向和能力。在设计和实现计算机网络时,选择适当的传输模式对于确保网络效率和性能至关重要。全双工模式通常更受欢迎,因为它支持更高的数据传输速率和更有效的通信。
2023-12-20 11:15:42
426
原创 数据结构与算法 基础数据结构(二)
1.数组描述: 数组是一种基本的数据结构,用于存储元素的有序集合。它在内存中分配一段连续的空间来存储元素。 特点: 固定大小:一旦创建,大小通常不变。 索引访问:可以通过索引直接访问任何位置的元素,提供 O(1) 时间复杂度的访问。 内存效率:由于连续的内存空间,数组在空间上很高效。 2.链表 单链表(Singly LinkedList) 描述: 每个元素(节点)包含数据和指向下一个节点的指针。 特点: 动态大小:可以根据需要增长或缩小。 顺序访问:必
2023-12-06 14:25:10
68
原创 win10 rabbitmq nxdomain 报错
win10 rabbitmq服务启动 报错,crash日志crasher:crasher:这个日志信息显示的是一个在 Erlang 环境中运行的 RabbitMQ 服务器的崩溃报告。具体来说,问题出现在模块中,这个模块是 RabbitMQ 用来监视 Erlang Port Mapper Daemon (EPMD) 的。
2023-11-24 10:22:18
158
原创 std::make_shared 和 std::shared(new)的区别
分配一个内存 并 新建一个 std::shared_ptr 引用它,有两种方法:使用 std::make_shared;使用 std::shared的构造,即 std::shared(new xxx)。推荐使用 std::make_shared来 分配内存并新建shared指针。但是make_shared无法指定deletor,因此如果分配的是一个数组,那么需要考察make_shared的底层是不是调用的delete[],如果是则安全,如果不是则存在一定的内存泄露可能性。
2023-11-06 11:36:48
162
原创 c++设计模式(单例模式)
尽管单例模式非常有用,但它也有一些缺点,例如,过度使用单例可能导致代码之间的高度耦合,并且在并发环境中,保证单例的线程安全可能会带来额外的复杂性。此外,单例模式也会使单元测试更加困难,因为它们引入了一个全局状态,这个状态在不同的测试用例中可能需要以不同的方式被初始化或模拟。),用于获取这个唯一的实例。这种实现方式利用了C++11之后的标准,保证了局部静态变量的线程安全性(在第一次调用。:为了防止复制单例实例,应该删除(或声明为私有)复制构造函数和复制赋值操作符。:在类内部创建一个私有的静态实例。
2023-11-03 16:14:13
39
原创 jrtplib学习
这段代码是一个使用RTP(Real-time Transport Protocol)的C++代码片段,用于创建一个RTP会话和传输参数,并将目标地址添加到接受列表中。RTP是一种常用于音频和视频传输的协议。让我们逐行解析这段代码:- 创建一个`RTPSessionParams`对象,用于设置RTP会话的参数。- 创建一个`RTPUDPv4TransmissionParams`对象,用于设置RTP传输的参数。- 设置接受本地发送的RTP数据包。
2023-08-01 17:06:33
260
原创 VS2015进行远程调试C++
通过远程调试,可以对运行 Visual Studio 的计算机之外的计算机上运行的程序进行调试。1.复制远程调试器到需要调试的电脑上并运行msvsmon.exe如果程序运行的远程主机是32位的,就需要使用x86,否则统一使用x64。
2023-07-12 17:16:44
314
1
原创 mysql下载安装配置 5.7.26
解决:在localhost的那台电脑,登入mysql后,更改 “mysql” 数据库里的 “user” 表里的 “host” 项,从"localhost"改称"%"6.设置密码SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');1.下载mysql,下载地址:https://downloads.mysql.com/archives/community/2.cmd进入bin目录下,执行 mysqld --initialize-insecure。
2023-07-12 14:24:12
392
1
原创 大华ICC平台对接组织设备通道
sdk版本:ICC_DPSDK_C_Chn_Win32_IS_V5.0.5.20230418lib:DPSDK.lib头文件:#include "./DH_NET/include/DPSDK_Error.h"#include "./DH_NET/include/DPSDK.h"2.登录大华平台3.获取设备树3.1设置数据同步回调函数3.2获取到的设备数据放入对应结构体目录1.初始化SDK2.登录大华平台3.获取设备树3.1设置数据同步回调函数3.2获取到的设备
2023-07-06 17:12:40
841
1
原创 C++值传递和引用传递
在函数内部将strTest赋值为"nihao"后,main函数中的strTest变量也被修改为"nihao"。在这段代码中,TestString函数的参数strTest是按值传递的,也就是说,当TestString函数被调用时,会将main函数中的strTest变量的值复制到一个新的strTest变量中,该新变量是TestString函数的局部变量。因此,在TestString函数内部将strTest赋值为"nihao"只是修改了函数内部的局部变量,对main函数中的strTest变量没有任何影响。
2023-06-15 10:33:01
173
原创 libcurl 中文参数,windows curl http https get 请求中带有中文参数或者特殊字符处理
工具提供的类库 libcurl但是在使用的过程中发现,如果请求的参数值带了空格或者是参数是中文,会导致响应的回调函数没有被执行,虽然curl_easy_perform 返回的CURLcode 为 CURLE_OK,但是实际上是没有数据的。curl_escape() 函数 不能对整个url 请求地址进行处理,只能对后面的请求参数进行处理,否则会造成地址错误。使用curl_escape() 函数对所要发送的请求参数进行处理,然后再发送.在使用c++去请求https服务的时候,使用的。
2023-05-29 15:17:12
473
原创 CentOS7.6编译安装mysql-5.7.30
版本说明:使用yum报错:显示没有已启用的仓库。执行 "yum repolist all" 查看您拥有的仓库。您可以用 yum-config-manager --enable <仓库名> 来启用仓库命令改为代码:sudo apt-get install xxx。
2023-05-09 17:54:34
184
原创 Wireshark抓包诊断TCP连接
● SACK:Selective ACK,该选项使连接双方能够仅确认指定报文,当单个报文丢失,只有这个报文会被重传。在建立连接时,除了三路握手信号之外,其他都表示有问题。● 问题也可能由复杂原因引起,如DNS问题,服务器内存不足无法连接(例如某一应用占用高内存空间),重复IP,以及其他原因。总之,当无法正常连接服务器时,检查服务器和客户端是否所有TCP/UDP端口都能通过网络转发,以及是否有未知的端口。● 问题可能由简单原因引起,如服务器宕机,服务器上没有运行应用程序,或在客户端到服务器的某一处网络断开。
2023-04-18 15:03:18
908
原创 /usr/bin/ld: warning: libssl.so.10, needed by xxx/lib//libcurl.so, may conflict with libssl.so.1.0.0
拷贝编译环境中的/usr/lib64/libcrypto.so.1.0.2k libssl.so.1.0.2k到程序路径,然后修改名称即可。原理是在编译程序的时候,添加Wl,rpath=./优先在当前程序目录加载动态库。libcrypto.so.1.0.2k修改为libcrypto.so.libssl.so.1.0.2k修改为libssl.so。已有的编译环境依赖的版本是1.0.0,版本太低。服务器安装了1.1.1版本的OpenSSL。
2023-03-29 14:47:46
1238
原创 linux编译 /usr/bin/ld cannot find -lz
提示:没有可用软件包 zlib1g-dev。这是因为linux不同版本依赖包有可能不同。
2023-03-28 15:34:56
164
原创 UDP协议
发送方,首先是把全零放入校验和字段并且添加伪首部,然后把UDP数据报看成是由许多16位的子串连接起来,若UDP数据报的数据部分不是偶数个字节,则要在数据部分末尾增加一个全零字节(此字节不发送),接下来就按照二进制反码计算出这些16位字的和。只是在计算校验和,临时添加在UDP数据报的前面,得到一个临时的UDP数据报。UDP校验和的计算方法和IP数据报首部校验和的计算方法相似,都使用二进制反码运算求和再取反,但不同的是:IP数据报的校验和之检验IP数据报和首部,但UDP的校验和是把首部和数据部分一起校验。
2023-03-24 10:57:21
141
原创 TCP协议
如果FIN_WAIT_1状态下,收到了对方同时带FIN标志和ACK标志的报文时,可以直接进入到TIME_WAIT状态,而无须经过FIN_WAIT_2状态。TCP协议是端到端的传输控制协议,之所以是“端到端”的协议,是因为”路由“是由IP协议负责的,TCP协议负责为两个通信端点提供可靠性保证,这个可靠性不是指一个端点发送的数据,另一个端点肯定能收到(这显然是不可能的),而是指,数据的可靠投递或者故障的可靠通知。,也即有一方要求close连接,但另外还告诉对方,我暂时还有点数据需要传送给你,稍后再关闭连接。
2023-03-24 10:53:13
563
原创 virtualBox安装CentOS7
磁盘大小依照自己要装的系统而定,不要盲目信任软件给出的推荐大小,比如CentOS的推荐大小是8GB,如果是安装Server版那么算是绰绰有余,但若是安装带GUI的完全版,则会因为空间太小而无法安装,所以明确自己要装的系统需要多大的空间也是一件非常重要的事。对于有图形界面的虚拟机一般可以开启“共享粘贴板”和“拖放”这两项设置,便于物理机和虚拟机之间的交互(需要安装增强工具),比如我这里的“Win10”虚拟机,当我开启这两个选项并安装“增强工具”之后,就可以实现物理机与虚拟机之间这种较为便捷的交互。
2023-03-22 10:51:45
450
原创 Boost.Asio C++ 网络编程 一
它提供了一套可以支持传输控制协议(TCP)socket、用户数据报协议(UDP)socket和Internet控制消息协议(IMCP)socket的API,而且如果有需要,你可以对其进行扩展以支持自己的协议。Boost.Regex:使用这个库(可选的)以便你重载read_until()或者async_read_until()时使用boost::regex参数。你可以基于这些进行同步或者异步的输入输出编程。Boost.Date_Time:这个库(可选的)为Boost.Asio中的计时器功能提供支持。
2023-03-20 16:17:43
265
原创 VS2015编译程序出现error C4996: ‘std::_Fill_n‘: Function call with parameters that may be unsafe
属性-> c\c++ -> 预处理器 -> 预处理器定义 里添加。_SCL_SECURE_NO_WARNINGS 编译成功。
2023-03-20 14:44:55
102
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人