自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 登录github修改host文件快捷工具

见大佬博客:(内带下载)

2023-04-03 16:47:35 156

原创 C++多线程编程之std::future

介绍了std::future, std::promise, std::async和std::packaged_task的用法。

2023-03-24 01:38:53 858

转载 C++虚函数表(转载)

C++虚函数表

2023-02-06 16:56:18 173

原创 C++ new和operator new的区别

C++ new 和 operator new的区别

2023-02-06 14:37:18 128

原创 【内存泄漏定位】

内存泄漏

2022-12-08 10:58:43 320

原创 nslookup程序(getaddrinfo和getnameinfo示例)

getaddrinfo 和 getnameinfo示例

2022-09-26 00:52:34 166

原创 半同步/半反应堆线程池实现

#ifndef THREADPOOL_H#define THREADPOOL_H#include <list>#include <cstdio>#include <exception>#include <pthread.h>#include "locker.h"// 线程池类,定义为模板类是为了代码复用,模板参数T是任务类template< typename T >class threadpool{public:

2022-05-16 22:27:21 269

原创 服务器压力测试客户端

#include <stdlib.h>#include <stdio.h>#include <assert.h>#include <unistd.h>#include <sys/types.h>#include <sys/epoll.h>#include <fcntl.h>#include <sys/socket.h>#include <netinet/in.h>#include &

2022-05-15 21:13:25 233

原创 cgi简单服务器

CGI 是Web 服务器运行时外部程序的规范,按CGI 编写的程序可以扩展服务器功能。CGI(Common Gateway Interface) 是WWW技术中最重要的技术之一,有着不可替代的重要地位。CGI是外部应用程序(CGI程序)与WEB服务器之间的接口标准,是在CGI程序和Web服务器之间传递信息的过程。CGI规范允许Web服务器执行外部程序,并将它们的输出发送给Web浏览器,CGI将Web的一组简单的静态超媒体文档变成一个完整的新的交互式媒体。CGI的处理步骤:通过Internet把用户

2022-05-04 02:45:30 1575

原创 c++ 线程池模板

#ifndef PROCESSPOOL_H#define PROCESSPOOL_H#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <assert.h>#include <stdio.h>#include <unistd.h>#include <err

2022-05-04 02:38:34 211

原创 线程同步机制包装类

#ifndef LOCKER_H#define LOCKER_H#include <exception>#include <pthread.h>#include <semaphore.h>class sem { public: sem() { if (sem_init(&m_sem, 0, 0) != 0) { throw std::exception(); } } ~sem() { sem_dest

2022-04-19 18:11:53 75

原创 不相干进程之间传递文件描述符

#include <sys/socket.h>#include <fcntl.h>#include <stdio.h>#include <unistd.h>#include <stdlib.h>#include <assert.h>#include <string.h>static const int CONTROL_LEN = CMSG_LEN(sizeof(int));// 发送文件描述符,fd参数适用

2022-04-04 15:17:24 181

原创 基于共享内存的聊天室服务程序

服务器代码如下:#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <assert.h>#include <stdio.h>#include <unistd.h>#include <errno.h>#include <string.h>#include <fcntl.h>#incl

2022-03-17 17:23:32 189

原创 父子进程信号量

#include <sys/sem.h>#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <sys/wait.h>union semun { // 此结构体为semctl系统调用的第四个参数的推荐格式,由sys/sem.h给出 int val; // 用于SETVAL命令

2022-03-16 17:14:29 268

原创 基于时间堆的定时器

#ifndef MIN_HEAP#define MIN_HEAP#include <iostream>#include <netinet/in.h>#include <time.h>using std::exception;#define BUFFER_SIZE 64class heap_timer;struct client_data { sockaddr_in address; int sockfd; char buf[B

2022-03-10 10:57:58 910

原创 基于时间轮的定时器

#ifndef TIME_WHEEL_TIMER#define TIME_WHEEL_TIMER#include <time.h>#include <netinet/in.h>#include <stdio.h>#define BUFFER_SIZE 64class tw_timer;struct client_data { sockaddr_in address; int sockfd; char buf[BUFFER_SIZE

2022-03-08 17:01:43 112

原创 处理非活动连接

其中依赖的lst_timer.h见上篇文章#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <assert.h>#include <stdio.h>#include <signal.h>#include <unistd.h>#include <

2022-03-07 15:40:26 354

原创 基于升序链表的定时器

#ifndef LST_TIMER#define LST_TIMER#include <time.h>#define BUFFER_SIZE 64class util_timer;struct client_data { sockaddr_in address; int sockfd; char buf[BUFFER_SIZE]; util_timer* timer; };class util_timer {public: ut

2022-03-03 19:48:29 326

原创 【C++虚函数表指针在对象中的结构】

#include <iostream>using namespace std;class parent1{ public: int c; virtual void funcA() { cout << "parent1 funcA"; }; protected: int f; private: int a; int b;};clas

2022-03-03 17:32:43 370

原创 Linux服务器编程 用SIGURG检测带外数据是否到达

带外数据带外数据用于迅速告知对方本端发生的重要的事件。它比普通的数据(带内数据)拥有更高的优先级,不论发送缓冲区中是否有排队等待发送的数据,它总是被立即发送。带外数据的传输可以使用一条独立的传输层连接,也可以映射到传输普通数据的连接中。SIGURG信号的作用在linux环境下,内核通知应用程序带外数据到达的方式有两种:一种就是利用I/O复用技术的系统调用(如select)在接受到带外数据时将返回,并向应用程序报告socket上的异常事件。另一种方法就是使用SIGURG信号。(下面代码)代码:

2022-02-28 00:23:39 247

原创 矩阵快速幂

关于什么是快速幂:快速幂代码现在回想下问题斐波那契数列:f(1)=1,f(2)=1f(1) = 1, f(2) = 1f(1)=1,f(2)=1。在n>2n > 2n>2时, f(n)=f(n−1)+f(n−2)f(n) = f(n - 1) + f (n - 2)f(n)=f(n−1)+f(n−2)。求f(n)f(n)f(n)。朴素动态规划解法:int fib(int n) { int dp[n]; dp[0] = 1, dp[1] = 1; for (in

2022-02-26 15:38:41 174

原创 快速幂代码

基础问题:求数字aaa的nnn次方。最基本的想法,就是一次一次相乘,时间复杂度为O(n)O(n)O(n)。代码如下:using ll = long long;ll pow(ll a, ll n){ ll ret = 1; for (ll i = 0; i < n; i++) { ret *= a; } return ret;}稍微思考一下便可得知,计算一个数的nnn次方并不需要相乘nnn次。我们如果知道aaa的n/2n/2n/2次方,便可

2022-02-26 11:26:34 646

原创 【C++ STL】priority_queue自定义排序函数

priority_queue是C++的一种STL容器,实现为堆。在leetcode刷题中非常常用。有些时候我们需要塞入自定义的数据结构。这样就需要对其的排序方式做一个重新定义。假设有以下数据结构struct node { int x; int y;};对比方式为只看x的大小。则对比函数cmp写法如下:#include<iostream>#include<queue>using namespace std;//函数对象类template <typenam

2022-02-25 17:30:17 2547

原创 LINUX IO复用高级应用二:聊天室程序

客户端:#define _GNU_SOURCE 1#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <assert.h>#include <stdio.h>#include <unistd.h>#include <string.h>#include

2022-02-16 01:17:41 600

原创 调用者保存寄存器和非调用者保存寄存器

定义假设有如下场景:函数A调用了函数B。寄存器rbx需要在调用B函数前后保持一致。func A: ... call func B ...func B: ...调用者保存寄存器:\color{red}{调用者保存寄存器:}调用者保存寄存器:func A: ... save register %rbx call func B restore register %rbx ...func B: ...如上图所示,寄存器%rbx是由函数B的调用者,即函数func A来保存并且

2022-02-15 11:25:56 2525

原创 费马小定理证明

费马小定理定理内容:aaa为自然数,ppp为一个质数。则有ap≡a (mod p)a^p \equiv a\ (mod\ p)ap≡a (mod p)其中 ≡\equiv≡ 是同模符号,表示左右的数字对于p来说取模,是相等的。证明:数学归纳法当a=1a = 1a=1时, 显然成立。当a=aa = aa=a时,设 p∣(ap−a)p|(a^p - a)p∣(ap−a),即ppp为ap−aa^p - aap−a的约数。则当a=a+1a = a +

2022-02-14 20:05:27 1255

原创 Linux 服务器高级编程ET LT代码

linux 服务器高级编程ET LT代码#include<sys/types.h>#include<sys/socket.h>#include<netinet/in.h>#include<arpa/inet.h>#include<assert.h>#include<stdio.h>#include<unistd.h>#include<errno.h>#include<string.h&gt

2022-02-11 00:37:06 719

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除