公告-无限期停更
公告-停更博主要参加27考研,不打算二战,且本科课程学得稀烂,遂开始逐步复习。本博客主要记录信息安全相关主题,大概考前不打算继续学习技术相关。
(考前也可能会诈尸
C++后端开发入门-FTP服务器与Libevent初探
C++后端开发入门-FTP服务器与Libevent初探环境准备安装Libevent:
1sudo apt install libevent-dev
安装后需要在Visual Studio 2022的“跨平台”下的远程标头IntelliSense管理器中将目标主机更新,并在项目属性链接器的“库依赖项”中添加“event”表示链接libevent.so,换作命令行为:
1gcc test.c -o test -I /usr/include -levent
Libevent入门用event_init初始化Libevent:
123#include <event2/event-config.h>#include <event.h>struct event_base *event_init(void);
用event_set初始化event事件,设置回调函数和关注的事件:
123456789#define evutil_socket_t intvoid event_set( struct event *ev, //执行要初始化的event对象 evuti ...
C++后端开发入门-HTTP服务器编程
C++后端开发入门-HTTP服务器编程环境配置先安装并关闭防火墙,安装Iperf工具:
1234sudo apt install firewalld iperf curlsudo systemctl stop firewalldsudo systemctl disable firewalldsudo firewall-cmd --status #not running
iperf的使用如下,Windows下有Jperf:
1234567#测试TCPsudo iperf -s -i 1 -w 1M #服务端运行 间隔1s TCP窗口尺寸为1Msudo iperf -c xxx.xxx.xxx.xxx -i 1 -w 1M #客户端运行#测试UDPsudo iperf -u -s #服务端运行sudo iperf -u -c xxx.xxx.xxx.xxx -b 900M -i 1 -w 1M -t 60 #客户端运行 带宽数量为900M(千兆链路的90%) 测试60s
接下来尝试搭建Apache:
123sudo apt install apache2sudo systemctl s ...
C++后端开发入门-服务器模型编程
C++后端开发入门-服务器模型编程分时循环服务器UDP版服务端:
123456789101112131415161718192021222324252627282930313233343536373839404142434445#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <string.h>#include <unistd.h>#include <errno.h>#include <stdio.h>char rbuf[50], sbuf[100];int main() { int sockfd, size, ret; char on = 1; struct sockaddr_in saddr; struct sockaddr_in raddr; size = sizeof(struct sockadd ...
C++后端开发入门-UDP与原始套接字编程
C++后端开发入门-UDP与原始套接字编程UDP当服务端接收缓冲区满了,后来收到的包会被丢弃,且服务端接收包后进行处理时也不收包,缓解措施可以单开一个进程,并增加延时。
UDP所用套接字函数在TCP篇都提到过,下面是例子,服务端为:
12345678910111213141516171819202122232425262728293031323334353637383940414243#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <string.h>#include <unistd.h>#include <errno.h>#include <stdio.h>char rbuf[50];int main() { int sockfd, size, ret; char on = 1; struct sockaddr_i ...
C++后端开发入门-TCP服务器编程
C++后端开发入门-TCP服务器编程格式转换12345678910111213#include <arpa/inet.h>typedef uint32_t in_addr_t;struct in_addr { in_addr_t s_addr;};in_addr_t inet_addr(const char* __cp); //将字符串点分十进制转为二进制地址 网络字节序 失败-1char* inet_ntoa(struct in_addr __in); //将结构IP地址转为点分十进制字符串//例如in_addr_t dwIP=inet_addr("172.16.2.6"); //不合法则返回-1struct in_addr ia;ia.s_addr=dwIP;printf("real_ip=%s\n",inet_ntoa(ia));
套接字常用结构⼀个套接字代表通信的⼀端,每端都有⼀个套接字地址,包含了IP地址和端⼝信息。套接字地址分为通用套接字地址和专用套接字地址。
通用套接字地址结构如下:
1234 ...
Qt6开发入门-常用控件简介
Qt6开发入门-常用控件简介QString字符串QString存储一串字符,每个字符是一个QChar类型的数据。QChar使用UTF-16编码,一个字符包含2字节数据。对于超过65535的Unicode编码,QString使用两个连续的QChar字符表示。QString字符串中一个汉字是一个字符。例如:
123QString str="dimple,酒窝";QChar ch0=str[0]; //dQChar ch7=str.at(7); //酒
QChar类常用接口函数:
12345678910111213141516171819bool isDigit();bool isLetter();bool isLetterOrNumber();bool isLower();bool isUpper();bool isMark();bool isNonCharacter();bool isNull();bool isNumber();bool isPrint();bool isPunct();bool isSpace();bool isSymbol();bool isEm ...
Qt6开发入门-Qt框架综述
Qt6开发入门-Qt框架综述常用定义Qt为各种常见数据类型定义了类型符号:
Qt数据类型
POSIX标志
字节数
q(u)int8/16/32/64
(unsigned/signed) char/short/int、(unsigned) long long int
1/2/4/8
q(u)longlong
(unsigned) long long int
8
uchar/ushort/uint/ulong
unsigned char/short/int/long
1/2/4/8
qreal/qsizetype
double/ssize_t
8
qfloat16(需要QFloat16.h)
2
常用函数:
123456789101112131415//下面参数为double的函数都有对应float的同名重载函数T qAbs(const T &value); //返回value绝对值const T &qBound(const T &min,const T &value,const T &max); //返回v ...
C++后端开发入门-环境配置与多线程编程
C++后端开发入门-环境配置与多线程编程环境配置下载并安装Ubuntu虚拟机,网卡改为桥接模式,启用root账户并设置密码。接下来装SSH:
1sudo apt install openssh-server,net-tools
然后修改/etc/ssh/sshd_config,将下列属性的注释去掉并修改值:
123LoginGraceTime 2mPermitRootLogin yesStrictModes yes
关防火墙并重启SSH:
123456sudo ufw disablesudo ufw statussudo service ssh restartsudo systemctl enable sshsudo systemctl status sshsudo reboot
接下来用MobaXTerm或XShell连上即可。
在Visual Studio 2022中添加“使用C++进行Linux和嵌入式开发”,新建“空项目(Linux)”。选择“工具”->“选项”->“跨平台”->“连接管理器”。添加一个SSH连接并下载远程标 ...
Qt6开发入门-环境配置与入门
Qt6开发入门-环境配置与入门安装在线安装包可以去官网找,也可以这里下载:https://mirrors.nju.edu.cn/qt/official_releases/online_installers/ ,但提前需要在Qt官网注册账户。下载需要换源,命令如下:
1qt-online-installer-windows-x64-4.9.0.exe --mirror https://mirror.nju.edu.cn/qt
安装时选择“个人使用”、“自定义安装”。建议选择安装目前最高版本的Qt6下的MSVC 2022 64-bit和MinGW 13.1.0 64-bit套件,选中Sources、全部Additional Libraries和Qt Debug Information Files。Build Tools中选择Qt对应的MinGW版本、Qt Installer Framework、CMake、Ninja和全部OpenSSL Toolkit。Qt Creator中建议选中Qt Creator、CDB Debugger Support、Debugging Tools for Wi ...