- 博客(25)
- 收藏
- 关注
原创 TCP编程
未连接队列:在三次握手协议中,服务器维护一个未连接队列,该队列为每个客户端的SYN包(syn=j)开设一个条目,该条目表明服务器已收到SYN包,并向客户发出确认,正在等待客户端确认包。因为SYN只占一个字节的序列号空间,所以每一个SYN的ACK中的确认号都是相应的初始序列号加1.类似地,每一个FIN(表示结束)的ACK中的确认号为FIN的序列号加1.**************quit***************//退出(可只退出客户端,服务器等待下一个客户端链接)这导致它的TCP也发送一个FIN。
2025-04-23 10:30:54
965
原创 网络编程入门知识
1、是一个编程接口2、是一种特殊的文件描述符 (everything in Unix is a file)3、socket是一种通信机制,并不仅限于TCP/IP协议4、面向连接 (Transmission Control Protocol - TCP/IP)5、无连接 (User Datagram Protocol -UDP 和 Inter-network Packet Exchange - IPX)
2025-04-19 14:09:36
773
原创 IO 进程同步、互斥(互斥锁)
互斥锁:通过互斥锁可以实现互斥机制,主要用来保护临界资源,每个临界资源都由一个互斥锁来保护,线程必须先获得互斥锁才能访问临界资源,访问完资源后释放该锁。是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。当然,死锁的情况下如果打破上述任何一个条件,便可让死锁消失。互斥:多个线程在访问临界资源时,同一时间只能一个线程访问。临界资源:一次仅允许一个进程所使用的资源。临界区:指的是一个访问共享资源的程序片段。
2025-04-19 14:02:18
474
原创 Linux IO模型
写阻塞--》阻塞情况比较少,主要发生在写入的缓冲区的大小小于要写入的数据量的情况下,写操作不进行任何拷贝工作,将发生阻塞,一旦缓冲区有足够的空间,内核将唤醒进程,将数据从用户缓冲区拷贝到相应的发送数据缓冲区。•当我们设置为非阻塞模式,我们相当于告诉了系统内核:“当我请求的I/O 操作不能够马上完成,你想让我的进程进行休眠等待的时候,不要这么做,请马上返回一个错误给我。阻塞I/O 模式是最普遍使用的I/O 模式,大部分程序使用的都是阻塞模式的I/O。读阻塞--》需要读缓冲区中有数据可读,读阻塞解除。
2025-04-19 14:01:20
315
原创 IO之线程
信号量代表某一类资源,其值表示系统中该资源的数量,信号量值>0,表示有资源可以用,可以申请到资源,继续执行程序,信号量值<=0,表示没有资源可以用,无法申请到资源,阻塞。信号量是一个受保护的变量,只能通过三种操作来访问:初始化sem_init、P操作(申请资源)sem_wait、V操作(释放资源)sem_post。共享的资源:可执行的指令、静态数据、进程中打开的文件描述符、信号处理函数、当前工作目录、用户ID、用户组ID。函数接口:sem_open\sem_wait\sem_post\sem_close。
2025-04-19 14:00:18
358
原创 IO之进程
交互进程:该类进程是由shell控制和运行的。该类进程经常与用户进行交互,需要等待用户的输入,当接收到用户的输入后,该类进程会立刻响应,典型的交互式进程有:shell命令进程、文本编辑器等。可中断睡眠态(TASK_INTERRUPTIBLE)S:处于等待状态中的进程,一旦被该进程等待的资源被释放,那么该进程就会进入运行状态。5)僵尸态(TASK_ZOMBIE):Z 当进程已经终止运行,但还占用系统资源,要避免僵尸态的产生。程序是动态的,是一个独立的可调度的任务,包含创建、调度、执行和消亡。
2025-04-09 19:27:50
488
原创 库(Linux)
当要使用别人的函数的时候除了包含头文件还要有库linux系统存储库的位置一般在/lib或/usr/lib库文件:通俗讲将用户写好的程序打包形成一个整体;当其他用户或其他模块使用时,只要有这个库文件就可以,不需要源代码。也可以理解为一组预先编译好的方法集合。本质上来说库就是一种可执行代码的二进制形式。由于windows和linux的本质不同,所以库不兼容。
2025-04-09 19:26:44
322
原创 C语言IO经典例题(持续g)
2. 练习:实现“head -n 文件名”命令的功能 (显示文件前n行)该程序应该无限循环,直到按Ctrl+C中断程序。
2025-04-08 19:48:33
261
原创 C语言IO之标准IO流(持续更新C语言IO,现已至标准IO)
4. 读写操作 fgets fputs fread fwrite。5. 定位操作 fseek ftell rewind。该程序应该无限循环,直到按Ctrl+C中断程序。缓冲机制:系统开辟的一块存储空间(应用层)在C库中定义的一组用于输入输出的函数接口。系统调用:内核向上层提供的一组接口。2. 标准错误 perror。3. 关闭文件 fclose。1. 打开文件 fopen。
2025-04-08 19:44:21
463
原创 Linux操作命令
查看操作系统版本lsb_release -a 或者 -rcat/etc/issue-->查看文件中内容查看内核版本uname -a 或者 -rcat/proc/version-->文件中查看。
2025-03-24 11:41:08
772
原创 C基础之----结构体struct
用户自定义的数据类型,在结构体中可以包含若干个不同数据类型的成员变量(也可以相同),是这些数据项组合起来反映某一个信息。struct 结构体名成员变量;}变量名;int id;int age;} stu;return 0;struct成员变量;}变量名;int age;} stu;return 0;int age;} stu;return 0;int id;int age;return 0;
2025-03-18 17:13:33
279
原创 C基础:字符的输入输出、if语句和switch语句
2. switchcase遇到break结束,case后的break可以省略,代码会顺序执行直到遇到。1. switch后的表达式或变量要求有具体值的,不能是一个范围、浮点类型、字符串。3. default是表示其他,是可以省略。主要作用:回收垃圾字符、接收一个字符。gets、puts:输入输出字符串。
2025-03-06 19:16:09
245
原创 C基础:变量、常量、输入输出、宏定义
string类型:字符串类型,用“”引起来的,比如"hello","123456"char类型:字符型,用' '引起来的,比如'a','0'特点:原样替换(不要直接计算结果,表达式是什么就直接替换)例:宏定义一个MIN使其 :输入两个数,输出较小的数。格式:#define 宏名 常量或表达式。标识常量:用符号进行标识一个常量。输出函数:printf();double:双精度浮点型。输入函数:scanf();局部变量和全局变量的区别。float:单精度浮点型。未赋初值,初值为随机值。
2025-03-06 19:15:07
308
原创 HTML标签基础
border-radius:边框半径 text-align:文本对齐方式 text-decoration:文本装饰。HTML中,一共有六级标题标签 h1~h6在显示效果上, h1最大, 往下依次变小,h6最小。是 HTML 中表示段落的标签,p 代表 paragraph(段落)。,控制网页的布局、颜色、字体等外观方面,它通常放在 HTML 文件的。标签是 HTML 语法的一部分,用于在 HTML 文件中内联定义。font-size:字体大小 width:宽度 height:高度。ctrl + / :注释。
2025-02-28 17:13:09
722
原创 SQL的基础命令
GLOB 运算符用于把某个值与使用通配符运算符的相似值进行比较。值是一个带符号的整数,根据值的大小存储在 1、2、3、4、6 或 8 字节中。AND 运算符允许在一个 SQL 语句的 WHERE 子句中的多个条件的存在。BETWEEN 运算符用于在给定最小值和最大值范围内的一系列值中搜索值。IN 运算符的对立面,用于把某个值与不在一系列指定列表的值进行比较。LIKE 运算符用于把某个值与使用通配符运算符的相似值进行比较。IN 运算符用于把某个值与一系列指定列表的值进行比较。IS NOT 运算符与!
2025-02-28 17:09:54
472
原创 Git基本操作
在工作区右键选择 TortoiseGit —> 显示引用记录 —> 选择前进的版本 —> 右键选择重置master到这个版本选择Hard重置工作区和索引(丢弃所有本地变更)在工作区右键选择 TortoiseGit —> 显示日志 —> 选择回退的版本 —> 右键选择重置master到这个版本选择Hard重置工作区和索引(丢弃所有本地变更)在文件夹下创建文件,右键-->git提交master-->确认-->推送。在文件夹下,右键-->乌龟壳-->拉取(保持默认设置)-->确认。工作区->版本库->远程仓。
2025-02-28 17:08:07
344
原创 Linux基本操作
P, --physical:显示物理路径,即当前目录的实际路径,忽略任何符号链接。-L, --logical:显示逻辑路径,即当前目录的符号链接路径(默认行为)。如果当前目录是通过符号链接访问的,那么 pwd -L 会显示符号链接的路径。功能:删除文件或目录,它可以将一个或多个文件或目录从文件系统中彻底删除,不可恢复。第六列:文件创建时间或者最近一次访问时间,时间比较近时显示顺序为{月日时间},时间较远时,则仅显示年份。功能:直接打开文件,如果文件不存在,则会自动创建,在完成编辑后保存即可。
2025-02-28 17:07:02
476
原创 Java学习记录(IO流篇)
1:核心类类 说明 File 文件类 InputString 字节输入流 OutputString 字节输出流 Reader 字符输入流 Writer 字符输出流 Closeable 关闭流接口 Flushable 刷新流接口 Serializable 序列化接口 .........
2022-06-05 19:23:04
89
原创 JAVA容器、泛型、接口
1:容器(又称为集合)容器:可以在其中放置对象或基本类型数据(数组就是一种容器)数组的优势:是一种简单的线性序列,可以快速地访问数组元素,效率高。如果从效率和类型检查的角度讲,数组是最好的。数组的劣势:不灵活。容量需要事先定义好,不能随着需求的变化而扩容。比如:我们在一个用户管理系统中,要把今天注册的所有用户取出来,那么这样的用户有多少个?我们在写程序时是无法确定的。因此,在这里就不能使用数2:泛型:泛型列表一般使用<T,E,V>这三个字母例:使用泛型和不使用泛型/
2022-05-22 15:54:50
116
原创 Java方法、类、排序及优化
1:抽象方法和抽象类抽象方法: 使用abstract修饰的方法,没有方法体,只有声明。定义的是一种“规范”,就是告诉子类必须要给抽象方法提供具体的实现。抽象类: 包含抽象方法的类就是抽象类。通过abstract方法定义规范,然后要求子类必须定义具体实现。通过抽象类,我们就可以做到严格限制子类的设计,使子类之间更加通用。例:抽象方法和抽象类的使用//抽象类abstract class Animal { abstract public void shout(); /...
2022-05-15 16:21:54
113
原创 Java变量、类型、数组
1:输出:(1)print:不自动进行换行。(2)println:自动进行换行。2:Helloworld:public class Welcome { public static void main(String[] args) { System.out.print("hello world"); }}3:变量的分类:(1)局部变量:方法或语句块得不定义的变量。生命周期是从声明位置开始到方法或语句块执行完毕为止。(2)成员变量(也叫实例变量 member variab
2022-05-08 13:45:50
222
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅