TCP三次握手与四次挥手 UDP报文段结构 TCP报文段结构

TCP三次握手与四次挥手 UDP报文段结构 TCP报文段结构
安装source insight 首先安装CrossOver,推荐18.0版本。 在CrossOver中安装source insight 4。 source insight安...
Redis中的泛型链表 其中: 链表结点使用void*指针来保存节点值。 dup、free和match成员是用于实现多态链表所需的类型特定函数。所以链表可以用于保存各种不同类...
Redis中的字典 Redis中的字典使用哈希表作为底层实现,一个哈希表中可以有多个哈希表结点,而每个哈希表结点保存了字典中的一个键值对。 相当于C++中的unordered...
链表/结点/迭代器结构体 链表迭代器 通过迭代器获取链表中下一个结点 迭代整个链表
使用read读取非阻塞socket read()函数可能有三种返回值: -1:出错或者无数据可读。 0:对端关闭socket。 >0:正常读取到了数据。 疑问:需要考虑rea...
添加编译器开关 可以通过CMAKE_C_FLAGS(C)变量和CMAKE_CXX_FLAGS(C++)变量设置。比如:
命令行参数 编辑项目的配置文件:image.png 输入命令行参数:image.png 显示类的成员 选中标识符后高亮
相关函数签名 backtrace():栈回溯,保存各个栈帧的地址。该函数用于获取当前线程的函数调用堆栈,获取的信息将存放在buffer中,buffer是一个二级指针,可以当作...
sigaction结构体定义 sa_handler:信号处理器函数的地址,亦或是常量SIG_IGN、SIG_DFL之一。仅当sa_handler是信号处理程序的地址时,亦即s...
待补充 客户端也可以使用bind绑定特定端口号 应用 nc模拟客户端时,可以使用-p选项指定某个端口号去连接服务器,而不是内核分配的随机端口号。
安装ssh 启动ssh 如果提示sshd error: could not load host key,则需要重新生成key: WSL中ssh配置 修改如下内容:
堆中某个结点与其父结点、左子树以及右子树数组下标的关系 从数组下标为1的位置开始存储堆: 从数组下标为0的位置开始存储堆: libevent中封装的小顶堆 realloc可以...
设置文件描述符为NonBlock和CloseOnExec 创建非阻塞且设置了close-on-exec套接字的两种方法 一般指定listen函数的第二个参数值为SOMAXCO...
Redis服务器入口 server.c中的main() IO多路复用函数 在ae.c中,Redis会根据当前系统选择最佳IO多路复用函数: 获取当前时间(微秒) 获取当前时间...
获取2字节整数的高8位和低8位 拷贝字符串 避免僵尸进程 在父进程中,通过忽略SIGCHLD即可避免僵尸进程: 封装perror与exit 打开一个文件,并按行读取 C语言方...
二分搜索树 向二分搜索树中插入元素的两种方法 判断数组中的元素是否是从小到大排序的 判断二叉树是否是一棵二分搜索树 思路:二分搜索树的中序遍历结果是有序的。
Linux命令 查看所有状态的TCP连接 注意:在Ubuntu下要加sudo才可以看到所有的TCP连接。 查看正在监听的TCP连接 解压缩 启动/停止/重启vsftpd服务 ...