<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Beast_Liu的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Beast_Liu</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Beast_Liu]]></copyright><item><title><![CDATA[【HTTPS】Wireshark导入密钥文件后仍无法解密https报文]]></title><link>https://blog.youkuaiyun.com/Beast_Liu/article/details/139776737</link><guid>https://blog.youkuaiyun.com/Beast_Liu/article/details/139776737</guid><author>Beast_Liu</author><pubDate>Wed, 19 Jun 2024 06:12:04 +0800</pubDate><description><![CDATA[因此只会针对443端口的相关报文进行解密。在本地Windows系统上新增系统环境变量"SSLKEYLOGFILE"，保存Chrome浏览器访问网站时使用的密钥；网站后，想通过Wireshark抓包https报文并解密。将1中的密钥导入配置到Wireshark中。Wireshark默认。]]></description><category></category></item><item><title><![CDATA[【Linux学习】新装的centos系统，SSH连接报错“Access Denied“]]></title><link>https://blog.youkuaiyun.com/Beast_Liu/article/details/122688129</link><guid>https://blog.youkuaiyun.com/Beast_Liu/article/details/122688129</guid><author>Beast_Liu</author><pubDate>Tue, 25 Jan 2022 16:46:22 +0800</pubDate><description><![CDATA[1.检查 "/etc/ssh/sshd_config" 配置文件，可参考以下文章。

解决Ubuntu SSH登陆出现Access Denied错误

2.检查 "selinux" 的状态。

①执行命令"getenforce"，若为"Enfocing"，则无法连接；若为"Diasbled"，则可以连接。

②若为"Enfocing"，则修改配置文件 "/etc/sysconfig/selinux"，将SELINUX=enforced 修改为 SELINUX=disabled；

③执行"reboot"，重]]></description><category></category></item><item><title><![CDATA[【Qt学习】qApp->quit()/exit(0);退出程序的实际应用与结果分析]]></title><link>https://blog.youkuaiyun.com/Beast_Liu/article/details/101062298</link><guid>https://blog.youkuaiyun.com/Beast_Liu/article/details/101062298</guid><author>Beast_Liu</author><pubDate>Fri, 20 Sep 2019 17:00:43 +0800</pubDate><description><![CDATA[网上许多文章介绍说，qApp-&gt;quit()可以直接退出Qt程序。我最开始的理解是：当程序运行到这句代码时，就会立即退出exe程序，后来发现根本没有效果。

经过反复实验后，特得出以下结论（以下结论基于Qt4.8.7+vs2008中的运行，其他Qt版本应该兼容且适用）：

1、qApp-&gt;quit/exit(0);执行后，程序仍会毫无阻拦的执行下去，与正常运行几乎无不同之处。

2、目...]]></description><category></category></item><item><title><![CDATA[【编程须知】同样的代码linux与windows的运行结果不同]]></title><link>https://blog.youkuaiyun.com/Beast_Liu/article/details/100773709</link><guid>https://blog.youkuaiyun.com/Beast_Liu/article/details/100773709</guid><author>Beast_Liu</author><pubDate>Thu, 12 Sep 2019 15:28:33 +0800</pubDate><description><![CDATA[原因1：

数据类型的字长不同。常见如：long长整型，linux下通常为8字节，而windows下通常为4字节。

相关知识可参考：详解不同数据模型下的不同数据类型
...]]></description><category></category></item><item><title><![CDATA[【Qt学习】SQLite数据库 插入、删除、更新等操作]]></title><link>https://blog.youkuaiyun.com/Beast_Liu/article/details/100668890</link><guid>https://blog.youkuaiyun.com/Beast_Liu/article/details/100668890</guid><author>Beast_Liu</author><pubDate>Mon, 09 Sep 2019 17:36:21 +0800</pubDate><description><![CDATA[插入操作：

方式一：


query.exec(QString("insert into Try values(%1, '%2', '%3')").arg(15).arg("字符串1").arg("字符串2"));

注意：1、Try 为表名，根据自己的表名替换；

     2、若内容为字符串，一定记得加单引号——‘%2’ ‘%3’；

方式二：

query.prepare()的...]]></description><category></category></item><item><title><![CDATA[【Socket网络编程】select()函数使用心得]]></title><link>https://blog.youkuaiyun.com/Beast_Liu/article/details/100543924</link><guid>https://blog.youkuaiyun.com/Beast_Liu/article/details/100543924</guid><author>Beast_Liu</author><pubDate>Wed, 04 Sep 2019 18:04:34 +0800</pubDate><description><![CDATA[Select在Socket编程中还是比较重要的，它能够监视我们需要监视的文件描述符的变化情况——读、写或是异常。
　　Select的函数格式(Unix系统下的伯克利socket编程，和windows下的略有区别，体现两个方面：一是select函数的第一个参数，在windows下可以忽略，但在linux下必须设为最大文件描述符加1；二是结构fd_set在两个系统里定义不一样)。

int sele...]]></description><category></category></item><item><title><![CDATA[【Socket网络编程】recv()与send()的返回值]]></title><link>https://blog.youkuaiyun.com/Beast_Liu/article/details/100541756</link><guid>https://blog.youkuaiyun.com/Beast_Liu/article/details/100541756</guid><author>Beast_Liu</author><pubDate>Wed, 04 Sep 2019 16:33:50 +0800</pubDate><description><![CDATA[1、intrecv(SOCKETs, char *buf, intlen, intflags)；

0、recv会先等待套接字s的发送缓冲中的数据被协议传送完毕，如果协议在传送s的发送缓冲中的数据时出现网络错误，那么recv函数返回SOCKET_ERROR(= -1)；

如果s的发送缓冲区中没有数据或者数据被协议成功发送完毕后，recv再检查套接字s的接收缓冲区，如果s接收缓冲...]]></description><category></category></item><item><title><![CDATA[【Qt学习】SQLite数据库 检测数据表是否存在]]></title><link>https://blog.youkuaiyun.com/Beast_Liu/article/details/100116331</link><guid>https://blog.youkuaiyun.com/Beast_Liu/article/details/100116331</guid><author>Beast_Liu</author><pubDate>Wed, 28 Aug 2019 11:54:08 +0800</pubDate><description><![CDATA[QSqlQuery query;
 
query.exec(QString("select count(*) from sqlite_master where type='table' and name='%1'").arg(TableName));
if(query.next())
{
    if(query.value(0).toInt()==0)
    {
        // 表不存...]]></description><category></category></item><item><title><![CDATA[【Qt学习】多线程QThread使用的几个关键点]]></title><link>https://blog.youkuaiyun.com/Beast_Liu/article/details/100052296</link><guid>https://blog.youkuaiyun.com/Beast_Liu/article/details/100052296</guid><author>Beast_Liu</author><pubDate>Sat, 24 Aug 2019 14:22:38 +0800</pubDate><description><![CDATA[划重点！！！

1、QThread从run()函数开始执行。

2、要创建一个线程，需要子类化QThread，并且重新实现run()函数。

3、创建该线程的实例后，需要调用自带的start()函数来开始执行该线程，start()默认调用run()函数。

4、当run()函数返回后，线程便执行结束，就像应用程序离开main()函数一样。

尤其注意第3点：

不要直接调用run()函数【比如：t...]]></description><category></category></item><item><title><![CDATA[【Qt学习】Qt中无法打开文件：QHostAddress、QTcoServer等]]></title><link>https://blog.youkuaiyun.com/Beast_Liu/article/details/100031902</link><guid>https://blog.youkuaiyun.com/Beast_Liu/article/details/100031902</guid><author>Beast_Liu</author><pubDate>Fri, 23 Aug 2019 10:15:15 +0800</pubDate><description><![CDATA[若要包含QHostAddress、QTcp、QSocket等网络通信类的头文件，

需在.pro文件中加入：

Qt += network

即可！
]]></description><category></category></item><item><title><![CDATA[【Qt学习】SQLite数据库操作]]></title><link>https://blog.youkuaiyun.com/Beast_Liu/article/details/99725475</link><guid>https://blog.youkuaiyun.com/Beast_Liu/article/details/99725475</guid><author>Beast_Liu</author><pubDate>Mon, 19 Aug 2019 14:23:24 +0800</pubDate><description><![CDATA[QSqlQuery类

QSqlQuery提供了对结果集的访问，可以一次访问一条记录。

执行完exec()函数后，会生成一张查询得到的记录结果集，QSqlQuery的内部指针会位于第一条记录前面的位置。

必须调用一次QSqlQuery::next()函数来使其前进到第一条记录，然后重复使用next()函数来访问其他记录，直到函数返回值为false。

QSqlQuery类提供的多个函数在结果集...]]></description><category></category></item><item><title><![CDATA[【Qt学习】Qt界面显示中文乱码]]></title><link>https://blog.youkuaiyun.com/Beast_Liu/article/details/99655631</link><guid>https://blog.youkuaiyun.com/Beast_Liu/article/details/99655631</guid><author>Beast_Liu</author><pubDate>Thu, 15 Aug 2019 20:42:33 +0800</pubDate><description><![CDATA[参考链接：Qt界面显示中文乱码问题

方法一：

设置为系统字体，用三个set

QTextCodec::setCodecForTr()

QTextCodec::setCodecForCStrings()

QTextCodec::setCodecForLocale()


#include &lt;QApplication&gt;
#include &lt;QDialog&gt;
#inclu...]]></description><category></category></item><item><title><![CDATA[【Socket网络编程】cin输入错误处理机制]]></title><link>https://blog.youkuaiyun.com/Beast_Liu/article/details/98945420</link><guid>https://blog.youkuaiyun.com/Beast_Liu/article/details/98945420</guid><author>Beast_Liu</author><pubDate>Fri, 09 Aug 2019 11:31:59 +0800</pubDate><description><![CDATA[参考文献： cin.fail(), cin.bad(), cin.good(), cin.clear(), cin.ignore()

   编程时经常出现cin函数出错，以致不再执行读操作的情况。这时候常需要用到cin.clear(),cin.ignore(), cin.fail()等函数，这些函数都是与cin的错误处理有关的。这里来分析一下cin的错误处理机制，并且学习几个重要的函数...]]></description><category></category></item><item><title><![CDATA[【Socket网络编程】cin输入流的相关]]></title><link>https://blog.youkuaiyun.com/Beast_Liu/article/details/98943021</link><guid>https://blog.youkuaiyun.com/Beast_Liu/article/details/98943021</guid><author>Beast_Liu</author><pubDate>Fri, 09 Aug 2019 10:28:47 +0800</pubDate><description><![CDATA[cin.get() cin.getline()关于输入超长的不同处理

参考链接：cin、cin.get()、cin.getline()、getline()的区别

C++中的清楚输入缓冲区的办法

参考链接：cin.clear()、cin.sync()和cin.ignore()的用法

一、cin.clear()、cin.sync()

cin.clear（）是用来更改cin的状态标示符的。

...]]></description><category></category></item><item><title><![CDATA[【Socket网络编程】connect函数超时处理]]></title><link>https://blog.youkuaiyun.com/Beast_Liu/article/details/98877563</link><guid>https://blog.youkuaiyun.com/Beast_Liu/article/details/98877563</guid><author>Beast_Liu</author><pubDate>Thu, 08 Aug 2019 17:13:49 +0800</pubDate><description><![CDATA[参考链接：Linux下connect超时处理【总结】

1、前言

　　最近在写一个测试工具，要求快速的高效率的扫描出各个服务器开放了哪些端口。当时想了一下，ping只能检测ip，判断服务器的网络是连通的，而不能判断是否开放了端口。我们知道端口属于网络的传输层，因此需要用ip和端口来探测，这个时候就可以用connect来探测一下，针对TCP协议，connect函数要进行TCP三次握手，如果conn...]]></description><category></category></item><item><title><![CDATA[【多线程编程】]]></title><link>https://blog.youkuaiyun.com/Beast_Liu/article/details/98483984</link><guid>https://blog.youkuaiyun.com/Beast_Liu/article/details/98483984</guid><author>Beast_Liu</author><pubDate>Mon, 05 Aug 2019 14:09:39 +0800</pubDate><description><![CDATA[Boost库之thread库/C++11之thread库

去销毁一个仍然可以“joinable”的C++线程对象会被认为是一种错误。为了销毁一个C++线程对象，要么join()函数需要被调用（并结束），要么detach()函数被调用。如果一个C++线程对象当销毁时仍然可以被join，异常会被抛出。

参考：thread中join和detach的区别
...]]></description><category></category></item><item><title><![CDATA[【算法学习】-动态规划算法]]></title><link>https://blog.youkuaiyun.com/Beast_Liu/article/details/86032168</link><guid>https://blog.youkuaiyun.com/Beast_Liu/article/details/86032168</guid><author>Beast_Liu</author><pubDate>Mon, 07 Jan 2019 22:28:52 +0800</pubDate><description><![CDATA[教你彻底学会动态规划——入门篇

【数字三角形】

教你彻底学会动态规划——进阶篇   

【最长上升子序列】【最长公共子序列】

剑指Offer——动态规划算法

【最长上升子序列】【最长公共子序列】

算法-动态规划 Dynamic Programming--从菜鸟到老鸟

【钢条切割】【小朋友过桥】【字符串变回文串】【背包问题】...]]></description><category></category></item><item><title><![CDATA[【C++编程基础】- typedef用法详解]]></title><link>https://blog.youkuaiyun.com/Beast_Liu/article/details/85780763</link><guid>https://blog.youkuaiyun.com/Beast_Liu/article/details/85780763</guid><author>Beast_Liu</author><pubDate>Fri, 04 Jan 2019 16:19:33 +0800</pubDate><description><![CDATA[最常见的两种用法：

用途一：

定义一种类型的别名，而不只是简单的宏替换。

比如，可以用来同时声明指针型的多个对象：


char* pa, pb; //这多数不符合我们的意图，它只声明了一个指向字符变量的指针，和一个字符变量；

以下则可行：


typedef char* PCHAR; //一般用大写
PCHAR pa, pb; //可行，同时声明了两个指向字符变量的指针

虽然，
cha...]]></description><category></category></item><item><title><![CDATA[【C++多线程编程学习(1)】-CPU个数、CPU核心数、CPU线程数]]></title><link>https://blog.youkuaiyun.com/Beast_Liu/article/details/85717576</link><guid>https://blog.youkuaiyun.com/Beast_Liu/article/details/85717576</guid><author>Beast_Liu</author><pubDate>Thu, 03 Jan 2019 20:21:59 +0800</pubDate><description><![CDATA[转自：CPU个数、CPU核心数、CPU线程数(by kimsimple)

 

CPU个数即CPU芯片个数。

CPU核心数是指物理上，也就是硬件上存在着几个核心。比如，双核就是包括2个相对独立的CPU核心单元组，四核就包含4个相对独立的CPU核心单元组。

CPU线程数是一种逻辑的概念，简单地说，就是模拟出的CPU核心数。比如，可以通过一个CPU核心数模拟出2线程的CPU，也就是说，这个单核心...]]></description><category></category></item><item><title><![CDATA[【C++编程基础】-详解char类型的范围（-128~127）]]></title><link>https://blog.youkuaiyun.com/Beast_Liu/article/details/85273213</link><guid>https://blog.youkuaiyun.com/Beast_Liu/article/details/85273213</guid><author>Beast_Liu</author><pubDate>Thu, 27 Dec 2018 10:25:54 +0800</pubDate><description><![CDATA[类似问题：一个n位有符号整型数值，其范围为-2^(n-1) ~2^(n-1) -1。

此类问题的根结在于：


“人们解决问题时，习惯以人的思维思考问题，但是，计算机本身却是以机器的思维进行处理的”。


在这里，就表现为：计算机对数据的处理其实是以“补码”的形式，而非日常生活中人们进行数学运算所采用的“原码”的形式。但是，人们在对“数值范围”进行处理的时候，却习惯性的采用了“原码”进行分析，而...]]></description><category></category></item></channel></rss>