自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 网编(数据库)

在代码中常动态创建数据库 在程序运行过程中,当需要进行数据库操作时,应用程序会首先尝试打开数据库,此时如果数据库并不存在,程序则会自动建立数据库,然后再打开数据库。但是数据库并不是随意地将数据进行存放,是有一定的规则的,否则查询的效率会很低。数据的来源有很多,比如出行记录、消费记录、浏览的。它是一个轻量级的嵌入式数据库。数据库是“按照数据结构来组织、存储和管理数据的仓库”。内的、有组织的、可共享的、统一管理的大量数据的集合。比目前流行的大多数数据库对数据的操作要快;储存在单一磁盘文件中的一个完整的数据库;

2024-12-03 18:37:07 734

原创 网编(头分析)

第二次握手:服务器收到SYN包,确认客户端的SYN,发送ACK确认包(ACK=1,ack=J+1),同时发送一个同步包(SYN=1,seq=K),进入。1、发送端给每个数据包添加包首部,首部中应该至少包含数据包的长度,这样接收端在接收到数据后,通过读取包首部的长度字段,便知道每一个数据包的实际长度了。第四次挥手:主动方收到FIN包,回复一个ACK确认包(ACK=1,ack=w+1),被动方接收到主动方的ACK后,关闭连接。Ack:应答号,用于应答非应答包(握手包,挥手包,数据包)。

2024-12-02 08:43:58 2324

原创 网编(网络检测,广播,组播)

实现某些特定协议要求,比如某些设备规定,发送请求数据后,如果多长时间后没有收到来自设备的回复,需要做出一些特殊处理。多播方式既可以发给多个主机,又能避免象广播那样带来过多的负载(每台主机要到传输层才能判断广播包是否要处理)192.168.1.0(255.255.255.0)最大主机地址:192.168.1.255(广播地址)广播方式发给所有的主机。过多的广播会大量占用网络带宽,造成广播风暴,影响正常的通信。组播是一个人发送,加入到多播组的人接收数据。如果同时发给局域网中的所有主机,称为广播。

2024-11-30 08:50:40 835

原创 网编(服务器)

(根据poll函数第一个参数来定,如果监听的事件为1个,则结构体数组元素个数为1,如果想监听100个,那么这个结构体数组的元素个数就为100,由程序员自己来决定)异步I/O,Epoll当有事件产生被唤醒之后,文件描述符主动调用callback(回调函数)函数直接拿到唤醒的文件描述符,不需要轮询,效率高。机制,将新连接的客户端描述符增加到描述符表中,只需要一个线程即可处理所有的客户端连接,在嵌入式开发中应用广泛,不过代码写起来稍显繁琐。监听的最大的文件描述符没有个数限制(理论上,取决与你自己的系统)

2024-11-29 15:43:53 873

原创 网编(liunx下的io)

select被唤醒之后需要重新轮询一遍驱动的poll函数,效率比较低(消耗CPU资源);假设妈妈有三个孩子,分别不同的房间里睡觉,需要及时获知每个孩子是否醒了,如何做?假设妈妈有一个孩子,孩子在房间里睡觉,妈妈需要及时获知孩子是否醒了,如何做?select每次会清空表,每次都需要拷贝用户空间的表到内核空间,效率低。先构造一张有关描述符的表(最大1024),然后调用一个函数。函数返回时告诉进程哪个描述符已就绪,可以进行I/O操作。简单,空闲时间还能干点别的,但是很累。简单,空闲时间还能干点别的,但是很累。

2024-11-28 12:26:42 613

原创 网编(简单介绍tcp和udp并tcp实现FTP)

netstat是控制台命令,是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。、UDP,客户端当使用send的时候,上面需要加connect,这个connect不是代表连接的作用,而是指定客户端即将要发送给谁数据。文件名可以通过参数指定,服务器端接收客户端传来的文件(文件名随意),如果文件不存在自动创建文件,如果文件存在,那么清空文件然后写入。、对于UDP来说,服务器和客户端运行顺序没有先后,因为是无连接,所以服务器和客户端谁先开始,没有关系,

2024-11-27 09:25:18 704

原创 网编(ip相关知识)

DOS:即 Denial of service,拒绝服务的缩写,拒绝服务,Dos 攻击即攻击者想办法让目标机器停止提供服务或资源访问,这些资源包括磁盘空间、内存、进程甚至网络带宽,从而阻止正常用户的访问。所以为了数据安全,不能连接因特网,需要用一条自己的专用线路来传输数据,这条线路上只有自己人,不会有其他人接入,且距离很远,这个网络就叫 “广域网”。广域网,就像是大马路,分支可能少,但类型多,像国道、省道、高速、小道等,连接了很多大的局域网。一端连接运营商的入户线缆,一般是光纤,一端连接你自己的路由器。

2024-11-26 09:13:26 1371

原创 IO相关知识

System V的信号灯是一个或者多个信号灯的一个集合。其中的每一个都是单独的计数信号灯。而Posix信号灯指的是单个计数信号灯。4)消息队列是存在Linux内核中,以链表形式来存放消息,消息队列对每个数据都有一个最大长度的限制。2)消息队列就是一个消息的列表。添加消息:按照类型把消息添加到已打开的消息队列末尾msgsnd。1)消息队列是IPC对象的一种,由消息队列ID来唯一标识。3)消息队列可以按照类型来发送(添加)/接收(读取)消息。ipcs -s:查看创建的信号灯集。消息队列的个数最多为16个;

2024-11-25 08:42:24 784

原创 IO相关知识

如果一个信号被进程设置为阻塞,则该信号的传递被延迟,直到其阻塞被取消时才被传递给进程。无名管道是基于文件描述符的通信方式,当一个管道被建立时,会创建两个文件描述符,fd[0]和fd[1],fd[0]固定用于读管道,fd[1],固定用于写管道。不可靠信号:也称为非实时信号,不支持排队,信号可能会丢失,比如发送多次相同的信号,进程只能收到一次,信号值取值区间为1~31。虚拟页通过页表被映射到物理页帧。可靠信号:也称为实时信号,支持排队,信号不会丢失,发多少次,就可以收到多少次,信号值取值区间为32~64。

2024-11-24 22:52:47 1965

原创 IO相关知识

信号量代表的是某一类资源,它的值表示系统中该资源的数量,信号量>0的话,表 示有资源可以使用,可以申请到资源,继续执行程序,信号量 = 0的话,表示没有 资源可以使用,无法申请到资源,阻塞。互斥锁:通过互斥锁可以实现互斥机制,主要用来保护临界资源,每个临界资源都由一个互斥锁来保护,线程必须先获得互斥锁才能访问临界资源,访问完资源后释放该锁。循环等待,即存在一个等待队列:P1占有P2的资源,P2占有P3的资源,P3占有P1的资源。3、请求和保持,即当资源请求者在请求其他的资源的同时保持对原有资源的占有。

2024-11-23 10:31:53 749

原创 IO相关知识

但是需要考虑临界资源(临界资源包括同一个文件,全局变量等)访问的问题,进程间的通信相对复杂,需要借助进程间的通信机制(借助3g-4g的的内核空间)vfork(): 保证子进程先运行,在调用exec()或exit()之前,与父进程数据共享,在exec()或exit()调用之后,父进程才能运行。共享的资源:可执行的指令,静态的数据,进程中打开的文件描述符,信号处理函数。线程是一个轻量级的进程,为了提高系统的性能引入线程,线程和进程都参与统一的调度。fork创建的子进程,父进程返回子进程的PID,子进程返回0。

2024-11-22 11:15:30 973

原创 IO相关知识

进程创建后,进程进入就绪态,当CPU调度到此进程时进入运行态,当时间片用完时,此进程会进入就绪态,如果此进程正在执行一些IO操作(阻塞操作)会进入阻塞态,完成IO操作(阻塞结束)后又可进入就绪态,等待CPU的调度,当进程运行结束即进入结束态。该类进程经常与用户进行交互,需要等待用户的输入,当接收到用户的输入后,该类进程会立刻响应,典型的交互式进程有:shell命令进程、文本编辑器等。睡眠态(等待态):可中断的睡眠态(S):处于等待状态中的进程,一旦被该进程等待的资源被释放,那么该进程就会进入运行状态。

2024-11-21 08:00:00 2528

原创 IO相关知识

文件描述符是一个非负的整数,取值范围(0-1023),最多产生1024个文件描述符,文件IO默认打开三个文件描述符,0(标准输入),1(标准输出),2(标准出错)围绕文件描述符进行操作的,文件描述符是一个非负的整数,依次进行分配。文件描述符的值分配时连续,关闭之后可以分配给其他打开的文件使用。文件IO是POSIX提供的一组内核层向上的输入输出的函数接口。可以操作除了目录文件以外的任意类型的文件。默认打开了三个文件描述符:0/1/2。系统中定义的一组用于输入输出的函数。C库定义的一组用于输入输出的函数。

2024-11-20 08:32:10 503

原创 IO相关知识

不同的操作系统只要移植了C库就可以使用,它是在系统调用之前做了一个二次封装,相当于是间接的进行了系统调用。带有缓存机制-》应用层读写文件-》调用内核层的函数接口-》内核层与硬件层进行交互-》拿到数据后返回给应用层的缓存区-》每次读写只需要从缓存区当中读取数据。正常的系统调用-》应用层读写文件-》调用内核层的函数接口-》内核层与硬件层进行交互-》拿到数据后返回给应用程-》每次读写都需要重复这样的流程。标准IO在系统调用之前作了二次封装增加了缓存机制,减少了系统调用的次数,提高了程序的效率。

2024-11-19 19:43:46 765

原创 关于vi编辑器的部分指令(Linux)

2024-09-26 20:30:26 250 1

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除