- 博客(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
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅