- 博客(7)
- 收藏
- 关注
原创 KMP算法代码及next数组解析
代码int* mknext(const char* str) { if (str == nullptr) return nullptr; int len = strlen(str); int j = 0; int k = -1; int* next = new int[len]; if (len == 0) return nullptr; next[j] = k; while (1) { if (j == len-1) break; if (k == -1 || st
2021-01-17 02:47:15
147
原创 epoll+反应堆代码
epoll检测的文件描述符只有两种,一种是监听描述符lfd,还有一种是连接描述符cfd,就是用来和客户端进行数据交流的。在struct task结构体中记录了各种操作所需要的参数,todo函数为要进行的操作,arg为指针,指向自己epoll中data端使用ptr段来找到任务所需要的taskepoll+反应堆示意图#include<unistd.h>#include<cstdio>#include<iostream>#include<sys/socke
2020-11-22 18:38:08
162
2
原创 epoll加线程池
#include<unistd.h>#include <cstdio>#include<sys/socket.h>#include<sys/epoll.h>#include<arpa/inet.h>#include<netinet/in.h>#include<fcntl.h>#include<pthread.h>#include<stdlib.h>#include<memory
2020-11-22 14:08:37
1001
1
原创 2020-11-12socket编程tcp编程心得(新得)包含:单向连续发包的seq序列号和ack序列号问题
注:192.168.43.169为客户端tcp进程192.168.43.104为服务器tcp进程客户端部分测试代码socket的tcp通信三次握手后的第一次受到客户端数据socket的tcp通信三次握手后的第二次受到客户端数据可以看到第一次收到的数据包明显短,且被’\n’分割,说明客户端第一次write的’\n’刷新了缓冲区;还可一看到从第二次收到的数据包开始’\n’包含在数据包中,说明从第二次开始客户端的’\n’就不会再刷新缓冲区。虽然不知道啥原因但事实如此。...
2020-11-12 20:57:18
485
原创 c++变量存放位置大全
总结:内存六区:内核区,栈区,堆区,静态区,常量区,代码区。对于局部量来说:除了静态局部变量存放在静态区,普通局部变量和局部常量都存放在栈区。对于全局量来说:除了全局常量存放在常量区,普通全局变量和静态全局变量都存放在静态区。...
2020-09-10 11:19:58
1662
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人