自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 天气爬虫项目

对网站上的天气数据进行查询分析,使用户能够通过简单的操作来获取所需要的天气数据,主要包括两部分:1.天气数据的获取;日志初始化:先判断是否存在文件,若存在则追加写,若不存在,则创建一个以日期为标题的文件。包含了TCP初始化,网页爬取,用户界面打印、功能选择,使用cJSON库函数解析爬取到网页的JSON数据内容。传输套接字,传输终端输入的数字,选择功能。调取封装好的函数,按照合理的逻辑运行。向日志内写入用户输入的数据和日期。向服务器(网站)发送请求报文。打印解析后实时天气的数据。打印解析后天气预报的数据。

2024-07-30 18:16:02 1032

原创 HTTP学习

503 Server Unavailable //服务器当前不能处理客户端的请求,一段时间后可能恢复正常。400 Bad Request //客户端请求有语法错误,不能被服务器所理解。HEAD 请求获取由Request-URI所标识的资源的响应消息报头。404 Not Found //请求资源不存在,eg:输入了错误的URL。DELETE 请求服务器删除Request-URI所标识的资源。4xx:客户端错误--请求有语法错误或请求无法实现。5xx:服务器端错误--服务器未能实现合法的请求。

2024-07-30 18:09:44 443

原创 TCP学习

指建立tcp连接时,需要客户端和服务端总共发送三次报文确认连接。backlog:最多允许等待尚未处理的三次握手链接个数。addrlen:想要接收的IP地址的长度。addr:存放发送端IP地址空间首地址。sockfd:套接字文件描述符。addr:存放目的地址空间首地址。sockfd:套接字文件描述符。sockfd:套接字文件描述符。sockfd:套接字文件描述符。sockfd:套接字文件描述符。addrlen:目的地址长度。buf:存放数据空间首地址。buf:存放数据空间首地址。flag:属性默认为0。

2024-07-30 18:09:10 330

原创 UDP学习

C/S模式 :有一个专用的客户端 client----server。2.不安全不可靠的协议 //一般用在实时性比较高的广播,组播//vnc。B/S模式 :有一个通用的客户端浏览器 browser----server。功能:将一个套接字与IP地址和端口号绑定(只能绑定自己的IP地址)套接字:通信对象的抽象, 网络通信的端口,一个通信链的句柄。功能:将字符串IP地址转换成二进制IP地址形式。功能:向一个IP地址和端口发送数据信息。3.htons----》主机转网络字节序。

2024-07-30 18:07:38 263

原创 OSI学习

TCP/IP模型: 工业模型4层 1.应用层:HTTP、HTTPS、FTP、TFTP、MQTT 2.传输层:TCP、UDP 3.网络层:IP 4.网络接口层:网络接口层既是传输数据的物理媒介,也可以为网络层提供一条准确无误的线路 5层 1.应用层:HTTP、HTTPS、FTP、TFTP、MQTT 2.传输层:TCP、UDP 3.网络层:IP 4.数据链路层:封装成帧,点对点通信(局域网内通信),差错检测 交换机 5.物理层:定义物理设备标准,比如网线,光纤等传输介质 比特流 bit。

2024-07-30 18:03:16 289

原创 通信:共享内存

IPC_CREAT 创建 (低9个bits表示用户,同组用户,其他人的权限)参数:pathname 路径 ,任意路径,只要不会被删除即可。获取key值 --->申请对象(创建共享内存)--->映射对象--->读写数据。proj_id 代号,整形的数据,一般用ASCII码的单字符表示。shmaddr 本地可用的地址,如果不确定则用NULL,表示。功能:修改共享内存属性,也可以删除指定的共享内存对象。功能:将指定shmid对应的共享内存映射到本地内存。--->撤销映射--->删除对象。

2024-07-23 20:59:00 439

原创 进程间通信:管道

一、管道的特性:1、管道是半双工的工作模式;2、所有的管道都是特殊的文件,不支持定位操作;可以,取决于pipe有没有内容,===>read返回值为0 不阻塞。写: write(fd-write,buff,sizeof(buff));读: read(fd-read,buff,sizeof(buff));管道的框架:创建管道 -->读写管道 -->关闭管道。pipefd[1] ==>无名管道的固定写端。如果在单一进程中写fd[1]能否直接从fd[0]中读到。参数:pipefd[0] ==>无名管道的固定读端。

2024-07-22 20:29:01 616

原创 线程控制(互斥、同步)

为了解决这种问题,使用互斥机制让多个线程访问临界资源时具有互斥的特性,使用互斥锁,在多线程中对临界资源的排他性访问。(2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放(执行流本身使用着一把锁并不释放,还在请求别的锁)。死锁: 死锁指的是在多线程环境中,每个执行流(线程)都有未释放的资源,且互相请求对方未释放资源,从而导致陷入永久等待状态的情况。如:线程A获取了1锁,线程B获取了2锁,同时线程A还想获取2锁,线程B还想获取1锁。atrr 初始化的值,一般是NULL表示默认锁。

2024-07-20 19:53:43 403

原创 线程的学习

===》主进程结束任意生成的次线程都会结束。线程可以共享空间,可以直接通信(多线程间可以使用全局变量通信,因为全局变量为共享空间)(不能是局部变量的地址)多线程不安全(一个线程异常结束会导致进程结束,其余线程均无法继续执行)====》次线程的正常结束不会影响主线程的运行。阻塞等待功能,如果指定的线程没有结束,则回收线程。1、线程的结束机制 ====》不同与进程没有孤儿线程和僵尸线程。进程中的每个线程,栈区是独立的,共享进程中的数据区和文本区,堆区。2.创建3个线程,将主线程中的变量cnt通过传参的方式,

2024-07-19 21:36:31 628

原创 Linux制作minishell

将文件分为content(内容)、decide(判断)及main(主程序)三个模块,将相对应的源文件放至SRC文件夹,头文件放至INCLUDE文件夹,调用的时候如何使用后面会说。makefile文件:用于执行文件的程序,通俗来讲是集成gcc以及要执行的所有文件。exit ----------》退出minishell。1. 获取终端用户输入的命令,并输出相应的执行结果。ls -l:显示列表详细内容。touch:创建普通文件。ls -a:显示列表内容。touch:创建普通文件。mkdir:创建文件。

2024-07-16 21:08:19 235 1

原创 2024年7月15日学习

3.fgets/fputs --------->一行一行读写(fgets返回值是NULL读到文件末尾\\'0'=0\\)1.open-------------->{面试官问过}文件描述符:系统对已打开的文件分配的标识符0-1023。2.fgetc/fputc --------->单字节读写(fgetc读到EOF☞文件末尾)1.打开文件fopen--------->文件流指针 FILE*(指向缓冲区)11.link创建硬链接---------->ln。

2024-07-16 19:03:04 338

原创 C语言制作99乘法表

【代码】C语言制作99乘法表。

2024-01-20 11:14:06 427

原创 C语言判断平年闰年

或者判断平年闰年(普通闰年、世纪闰年)程序可能不是最简练的,但是能够运行。

2024-01-19 10:26:41 1329 1

原创 能不能学一丶

1、vim编辑器1.使用vim打开vim 文件名.c2.点击"i"键开始编辑(“o”“a”键一般用不上)3.编写程序。

2024-01-15 18:44:31 1139 2

空空如也

空空如也

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

TA关注的人

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