- 博客(10)
- 收藏
- 关注
原创 Sock网络编程
封装一个Socket类时,需要根据其核心功能(创建、连接、通信、关闭等)设计成员函数。以下是一个通用Socket类通常需要包含的成员函数,涵盖了客户端和服务端的常用操作;
2025-08-08 11:06:30
236
原创 网络基础一
答案肯定是不行的,虽然协议是网络通信的基础,它定义了数据格式、传输规则和错误处理机制,但实际通信还需要多个其他因素的配合。计算机之间的传输媒介是光信号和电信号,通过“频率”和“强弱”来表示0和1这样的信息,要想传递各种不同的信息,就需要约定好双方的数据格式。数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部, 根据首部中的 "上层协议字段" 将数据交给对应的上层协议处理。TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求.下图为数据封装的过程。
2025-08-06 23:21:18
465
原创 Linux信号产生的问题与总结
总结来说,当信号未被立即处理,是要将其记录下来,未立即处理的信号(因进程处于内核态或被阻塞)必须暂存,否则会丢失,导致信号机制失效。信号会暂存于进程控制块(task_struct)的挂起信号队列(pending signals)和阻塞信号掩码(blocked signals)中,属于进程私有数据,确保每个进程独立管理自己的信号状态。常见信号的默认处理方式包括终止进程(如SIGTERM) 忽略(如SIGCHLD)或核心转储(如SIGSEGV).默认行为是信号设计的一部分,进程无需主动配置。
2025-05-28 01:47:56
1003
原创 Linux信号初识
信号是进程之间事件异步通知的一种方式,属于软中断。在Linux中,本质是一种通知机制,用户or操作系统通过发送一定的信号,通知进程,某些事件已经发生,可以在后续进行处理。一.用kill -l命令来查看系统定义的信号列表。根据这个图表,1到31号信号为普通信号,34到64信号为实时信号。每个信号都有一个编号和一个宏定义名称,这些宏定义可以在signal.h中找到,例如其中有定义#define SIGINT 2.
2025-05-22 17:26:47
748
原创 位图的详解
是一种高效存储和操作二进制位的数据结构,核心思想是通过二进制位(0 或 1)表示某种状态或信息。它广泛用于需要紧凑存储和快速位操作的场景,例如去重、快速查找、布隆过滤器等。位图通过自身中的每个来代表(我们要处理的数据)中的元素,每个是0或1,代表元素的存在与否(0,不存在;1,存在)。
2025-03-25 23:12:38
1009
1
原创 Linux调式器-gdb的使用
GDB(GNU Debugger)是UNIX及UNIX-like下的强大调试工具,可以调试ada, c, c++, asm, minimal, d, fortran, objective-c, go, java,pascal等语言。可以与windows IDE对应例子以上就是GDB的命令以及命令的如何使用。
2024-03-12 15:36:12
1287
2
原创 批量删除当前目录下后缀名为.c的文件
xargs是一个强有力的命令,它能够捕获一个命令的输出,如何传递给另外一个命令,用于很多不支持|管道来传递参数的命令,其相当于将前边命令的结果,也就是查找到的文件名,传递给后边的rm指令进行删除。而这条指令并没有进行深度控制,删除的不仅是当前目录下的文件,还会将子目录的文件也删除。这条指令能找到当前目录下.*结尾的文件,目录深度为1,说明只在当前目录中删除。1.使用通配符 *表示匹配任意字符任意次。
2024-03-05 16:15:21
896
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人