- 博客(29)
- 收藏
- 关注
原创 套接字属性
SOL_SOCKET 该级别的选项只作用于套接字本身。IPPROTO_IP 该级别的选项作用于IPv4协议。IPPROTO_IPV6 该级别的选项作用于IPv6协议。IPPROTO_RM 该级别的选项作用于可靠的多播传输。IPPROTO_UDP 该级别的选项适用于数据报套接字。IPPROTO_TCP 该级别的选项适用于流式套接字。optval:指向存放接收到的选项内容的缓冲区。optval:指向存放接收到的选项内容的缓冲区。level:表示选项的级别。
2025-10-28 21:43:10
127
原创 I/O多路复用
3.线程试图得到一个锁,而该锁正被其他线程持有,于是只能进入阻塞状态,等到获取了同步锁,才能恢复执行。同步是对于消息的通知机制而言,阻塞是针对等待消息通知时的状态来说的。2.线程调用一个在I/O上被阻塞的操作,即该操作在输入/输出操作完成前不会返回到它的调用者。对于一个线程的请求调用来讲,同步和异步的区别在于是否要等这个请求出最终结果。对于多个线程而言,同步或异步就是线程间的步调是否要一致、是否要协调。阻塞与非阻塞与等待消息通知时的状态(调用线程)有关。同步也经常用在一个线程内先后两个函数的调用上。
2025-10-25 19:24:16
626
原创 TCP协议、UDP协议、IP协议、ethernet协议以及UNIX域套接字
TCP 是面向连接的运输层协议,在无连接的、不可靠的 IP 网络服务基础之上提供可靠交付的服务。为此,在 IP 的数据报服务基础之上,增加了保证可靠性的一系列措施。面向字节流:虽然应用程序和 TCP 的交互是一次一个数据块,但 TCP 把应用程序交下来的数据看成仅仅是一连串无结构的字节流。每一条 TCP 连接只能有两个端点 (endpoint),每一条 TCP 连接只能是点对点的(一对一)。TCP 中的“流”(stream) 指的是流入或流出进程的字节序列。TCP 是面向连接的运输层协议。
2025-10-22 22:09:05
31
原创 socket套接字
*处理客户端发起的连接,生成新的套接字*/ int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);/*向服务器发起连接请求*/ int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen);/*创建套接字*/ int socket(int domain, int type, int protocol);端口号:标识计算机当中的进程。
2025-10-21 09:32:27
110
原创 IP地址相关知识
5001-65535:BSD服务器(非特权)端口,用来给用户自定义端口。使用冒号十六进制记法(colon hexadecimal notation, 简写为 colon hex):16 位的值用十六进制值表示,各值之间用冒号分隔。FF05:0:0:0:0:0:0:B3可压缩为:FF05::B3。0-1023: BSD保留端口,也叫系统端口,这些端口只有系统特许的进程才能使用。由一连串 1 和接着的一连串 0 组成,而 1 的个数就是网络前缀的长度。0不使用,1-1023为系统端口,也叫BSD保留端口。
2025-10-20 21:32:10
830
原创 OIS七层体系结构与TCP/IP及五层体系结构
是计算机网络的各层及其协议的集合,就是这个计算机网络及其构件所应完成的功能的精确定义(不涉及实现)。,简称为协议,是为进行网络中的数据交换而建立的规则、标准或约定。是遵循这种体系结构的前提下,用何种硬件或软件完成这些功能的问题。:发送端将要发送的数据块划分为更小的单位,在接收端将其还原。:发送端几个高层会话复用一条低层的连接,在接收端再进行分用。:交换数据前先建立一条逻辑连接,数据传送结束后释放连接。:需要发出何种控制信息,完成何种动作以及做出何种响应。:数据与控制信息的结构或格式。
2025-10-20 14:19:15
93
原创 互联网的认识
传输信息为基本目的,用通信线路和通信设备将多个计算机连接起来的计算机系统的集合。处在互联网边缘部分的就是连接在互联网上的所有的主机。由若干节点(node)和连接这些节点的链路(link)组成。功能完善的网络软件及通信协议实现资源共享和信息传递的系统。2019 年 3 月底,互联网的用户数已超过了 43.8亿。节点可以是计算机、集线器、交换机或路由器等。的精确定义并未统一,一般以以下两种作为。前身是美国的ARPAnet(阿帕网)。1.按照网络的作用范围进行分类。2.按照网络的使用者进行分类。
2025-10-19 19:09:25
164
原创 并发程序设计(进程)
pid>0时,只等待进程ID等于pid的子进程,不管其它已经有多少子进程运行结束退出了,只要指定的子进程还没有结束,waitpid就会一直等下去。pid=0时,等待同一个进程组中的任何子进程,如果子进程已经加入了别的进程组,waitpid不会对它做任何理睬。pid=-1时,等待任何一个子进程退出,没有任何限制,此时waitpid和wait的作用一模一样。pid<-1时,等待一个指定进程组中的任何子进程,这个进程组的ID等于pid的绝对值。进程的优先级,数值越小,该进程的优先级越高,越早被 CPU 执行;
2025-10-09 22:57:16
478
原创 文件I/O
创建文件时第三个参数指定新文件的权限,(只有在建立新文件时有效)此外真正建文件时的权限会受到umask 值影响,实际权限是mode-umaks。Linux为程序中每个打开的文件分配一个文件描述符。:如果该文件不存在,就创建一个新的文件,并用第三的参数为其设置权限。文件描述符(fd-----file description):以添加方式打开文件,所以对文件的写操作都在文件的末尾进行。时文件存在,则可返回错误消息。:如文件已经存在,那么打开文件时先删除文件中原有数据。每个打开的文件都对应一个文件描述符。
2025-09-27 11:09:48
314
原创 标准I/O
fclose()函数的入参stream必须保证为非空,否则出现断错误。fclose()调用成功返回0,失败返回EOF,并设置errno。:当在输入和输出中遇到换行符(‘\n’)时,进行I/O操作。以只写方式打开文件,若文件不存在则创建;当一个程序正常终止时,所有打开的流都会被关闭。以只写方式打开文件,若文件存在则文件长度清为。流关闭时自动刷新缓冲中的数据并释放缓冲区。流就是数据的流,在程序中就是一个结构体。以只读方式打开文件,文件必须存在。以读写方式打开文件,文件必须存在。以读写方式打开文件,其他同。
2025-09-25 22:50:49
401
原创 计算机数据结构
包含若干数据元素的一个线性序列 记为: L=(a0, ...... ai-1, ai, ai+1 ...... an-1)插入前: (a0,a1,---,ai-1,ai,ai+1-------,an-1) 0≤i≤n,i=n时,x插入表尾。删除前: (a0,a1,---,ai-1,ai,ai+1-------,an-1)插入后: (a0,a1,---,ai-1, x, ai,ai+1-------,an-1)删除后: (a0,a1,---,ai-1,ai+1-------,an),an-1),对 L的。
2025-09-17 22:18:58
291
原创 Makefile
target也就是一个目标文件,可以是Object File,也可以是执行文件。还可以是一个标签(Label),对于标签这种特性,在后续的“伪目标”章节中会有叙述。makefile只会执行第一个目标文件,若第一个目标文件中所需的文件或目标没有,则会往下执行第二个、第三个……prerequisites就是,要生成那个target所需要的文件或是目标。command也就是make需要执行的命令。若不想执行第一个文件,可以在make后面加上指定的目标文件名。若有文件和目标文件同名,可以用伪目标.PHONY。
2025-09-15 22:46:16
133
原创 GCC与GDB
O,对程序进行优化编译、连接,采用这个选项,整个源代码会在编译、连接过程中进行优化处理,这样产生的可执行文件的执行效率可以提高,但是,编译、连接的速度就相应地要慢一些。1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序(按着自己的想法运行)。(断点可以是条件表达式)-c,只编译,不连接成为可执行文件,编译器只是由输入的.c等源代码文件生成.o为后缀的目标文件,通常用于编译不包含主程序的子程序文件。(Pre-Processing)-----把#开头的进行替换,并不会检查错误。
2025-09-15 19:41:18
724
原创 计算机内存
代码区: 存放函数体的二进制代码,由操作系统进行管理(cpu执行的机器指令,共享只读)全局区(全局静态区): 存放全局变量和静态变量以及常量(包含const)堆区: 由程序员分配和释放,若程序员不释放程序结束时由操作系统回收。栈区: 由编译器自动分配释放,存放函教的参数值,局部变量等。
2025-09-14 22:50:54
172
原创 C语言枚举
默认第一个成员从0开始,后面成员依次+1。有特定值的成员后面,从特定值开始依次+1。同一个枚举类型中,成员值可以相同。不同的枚举类型中,成员名不可以一样。enum 枚举名 {
2025-09-14 21:32:43
144
原创 C语言结构体
struct 结构体名 数组名[元素个数] = {{},{},……赋值方式3:定义结构体时定义变量(赋值)赋值方式1:定义完结构体变量再进行赋值。赋值方式2:定义结构体变量时进行赋值。struct 结构体名。
2025-09-12 11:01:47
195
原创 C语言指针
指针如果没有给定初始值,值是不确定的。空指针:int *p = NULL;uname -m:查看系统是多少位。指针指向的空间释放了。在计算机中存储器的容量是以。指针的解引用实现变量的加减。位操作系统,一个指针占。位操作系统,一个指针占。
2025-09-12 08:38:42
170
原创 NFS服务器
nfs(Network File System)即网络文件系统,其基于UDP/IP 使用nfs能够在不同计算机之间通过网络进行文件共享,能使使用 者访问网络上其它计算机中的文件就像在访问自己的计算机一样。目录下:sudo mount -t nfs localhost:/home/linux/nfs/rootfs /mnt。创建一个目录用于共享:sudo mkdir /nfs/rootfs。在刚刚创建的目录下写一个文件:sudo vi test.txt。取消挂载:sudo umount /mnt。
2025-09-11 20:41:29
282
原创 TFTP服务器
TFTP(Trivial File Transfer Protocol)即简单文件传输协议 是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件 传输的协议,提供不复杂、开销不大的文件传输服务。tftp使用客户服务器方式和使用UDP数据报,因此tftp需要有自己的差错改正措施。tftp没有一个庞大的命令集,没有列目录的功能,也不能对用户进行身份鉴别。tftp支持小文件传输。
2025-09-11 09:25:59
173
原创 linux shell命令
tar命令符号模式的一般语法格式为: tar [ -t | -x | -r | -c | -v | -f | -j | -z ] tarfile filelist。当然,之后出现tar程序的改进版本,可以实现在合并归档的同时进行压缩。sed -i '10,30s/linux/Linux/g' passwd:将passwd文件中第10到30行的linux全部替换成Linux。:ln -s target link_name,创建一个inode号不相等的文件,利用简单的链接名来替换原来又长又复杂的文件名。
2025-09-08 22:02:39
464
原创 C语言数组
例如:a[n]=128 10000000 a[m]=114 01110010。数组元素个数 = sizeof(数组名)/sizeof(元素数据类型)。C语言中无字符串变量,一般用字符数组处理字符串,字符串结束标志:'\0'例:char ch[5]={'B','o','y'};数组占用内存空间 = sizeof(数组名)。数组名代表数组的首地址(类似指针)。数组名代表整个数组。
2025-08-07 14:16:02
181
原创 vi编辑器
R可以进入替换模式,替换完成后,按Esc可以返回命令模式。O o (Open)进入编辑状态,并插入一新行,光标移到该新行的行首,以后键盘输入的字符将插入到光标位置。A a (Append)进入编辑状态,从当前光标之后的位置开始插入键盘输入的字符。I i (Insert)进入编辑状态,从当前光标之后的位置开始插入键盘输入的字符。:q (Quit)退出没有修改的文件(若文件被修改了而没有保存,则此命令无效)。范围s/旧文本/新文本/g:s代表替换,g全部替换(默认换一行中的第1个)。
2025-08-06 23:46:07
404
原创 C语言运算符
0)||(year % 400 == 0),当year为2024时,由于||左边的结果为1,所以最终结果就是1,所以year % 400 == 0是不会执行的。多个表达式可以用逗号分开,每个表达式的值分别运算,但整个表达式的值是最后一个表达式的值。一般形式为:(表达式1, 表达式2, ..., 表达式n)。规则:如果条件表达式的值为真,整个表达式的值为表达式1的值;如果条件表达式的值为假,整个表达式的值为表达式2的值。一般形式:<条件表达式>?<表达式1>:<表达式2>
2025-08-05 17:27:08
148
原创 原码、反码与补码
在八位二进制下,因为有一位是符号位,原码和反码只能表示0到127,-0到-127,所以-128不能用原码或反码表示。人为定义:-128的补码为10000000。-2的反码是11111101。-2的补码是11111110。例如:-2的原码是10000010。负数补码转换成十进制:最高位不动,其余位取反加1。加1:10000111=-7。补码:11111001。取反:10000110。正数:原码、反码与补码相同。负数:补码等于反码加1。
2025-08-05 17:12:52
146
原创 Linux-c终端知识补充
普通用户的命令提示符,当胡勇使用普通权限登录系统时,命令提示符通常是以$符号开头。长短格式对照:[-a] == [--all],这里ls -a和ls --all的作用是等效的显示所有文件,包含以.开头的隐藏文件以及特殊目录。主机名:是当前系统的简写主机名,可以用hostname命令查看当前系统的主机名,当前系统的主机名是linux-vir--mac。~家目录符号,上图的命令行提示符号说明用户的当前路径是用户的家目录。-:普通文件,或者更准确的说,不属于其他几种类型的文件。b:块设备文件(比如:U盘)。
2025-08-05 14:09:12
186
原创 Linux-c命令
-p]选项:递归删除目录dirname,当子目录删除后其父目录为空时,也一同被删除。-r,-R,--recursive 递归删除目录及其内容。使用--recursive(-r或-R)选项可删除每个给定的目录,以及其下所有的内容。gedit 文件名:生成一个文件,并跳出一个文本编辑器,gedit是linux下的一个纯文本编辑器,类似于windows下的记事本。rm作用:删除文件或目录,它可以将一个或多个文件或目录从文件系统中彻底删除,不可恢复!-i:交互模式,删除文件或目录前询问是否确认。
2025-08-05 13:48:03
244
原创 Ubuntu系统相关命令、操作
鼠标点击Linux虚拟机,鼠标就在Linux中。ctrl+alt,鼠标就回到了windows操作系统。输入命令clear清屏(可以终端上敲几个换行符,在输入clear命令+回车)。ctrl+shift+n 在已经打开终端的基础上,新打开一个同路径的终端。ctrl+shift+t 在已经打开终端内,新起一个同路径的窗口。ctrl+l 清屏(可以终端上敲几个换行符,再ctrl+l)。ctrl+alt+t 打开一个新的终端。输入命令exit退出当前命令行终端。
2025-08-01 19:45:53
138
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅