- 项目背景
对网站上的天气数据进行查询分析,使用户能够通过简单的操作来获取所需要的天气数据,主要包括两部分:1.天气数据的获取;2.数据打印至终端。
- 项目功能
- 显示实时天气,可选择城市;
- 显示未来7天的天气预报,可选择城市;
- 用户可主动退出。
- 项目框架
man.c
调取封装好的函数,按照合理的逻辑运行。
head.h
包含了程序所需的头文件。
device.c
包含了TCP初始化,网页爬取,用户界面打印、功能选择,
使用cJSON库函数解析爬取到网页的JSON数据内容。
- 项目模块分析介绍
接口名称 | 参数说明 | 接口描述 |
init_tcp(); | 初始化TCP,使用tcp方式连接至服务器 | |
send_http_request_realtime | int sockfd,int num | 发送数据请求报文 传输套接字,传输终端输入的数字,选择功能 |
show_init(); | void | 用户界面打印 |
recv_init | int sockfd | 客户端接收数据 int sockfd传一个套接字给接收程序 |
printf_tody | void | 打印解析后实时天气的数据 |
printf_future | void | 打印解析后天气预报的数据 |
log_init | void | 日志初始化:先判断是否存在文件,若存在则追加写,若不存在,则创建一个以日期为标题的文件 |
log_write | void | 向日志内写入用户输入的数据和日期 |
- 项目流程图
日志初始化
TCP链接
向服务器(网站)发送请求报文
接收回应报文
解析并打印实时天气
解析并打印预测天气