zoukankan      html  css  js  c++  java
  • Linux环境下天气预报实现

    本实验是实现一个简易天气预报客户端。可查看最近三天天气预报。

    使用一些常用天气API数据实现数据的解析。此处我是用心知天气(),其IP地址为:116.62.81.138        使用端口号:80    传输协议TCP

    网页信息一般使用GET或POST获取,此处查看心知天气开发文档可知,使用GET方法。

    网页传输过来的数据一般使用json格式进行传输,我们需要对其进行解析,然后再依次展示出来。

    部分代码如下:

    static int cJSON_NowWeatherParse(char *JSON,Weather *result);
    
    int main(int argc, char *argv[])
    {
        int sockfd,sendbytes;
        char buf[BUFFER_SIZE];
        char GetRequestBuf[256]={0};
        char WeatherRecvBuf[1024]={0};
        char weather_json[20]=NOW_JSON;
        char location[20]="shanghai";
        Weather *result;
        
        struct hostent *host;
        struct sockaddr_in serv_addr;
        
        memset(buf,0,sizeof(buf));
        sockfd=socket(AF_INET,SOCK_STREAM,0);
        
        serv_addr.sin_family=AF_INET;
        serv_addr.sin_port=htons(PORT);
        serv_addr.sin_addr.s_addr=inet_addr(WEATHER_IP_ADDR);
        //bzero(&(serv_addr.sin_zero),8);
        if(connect(sockfd,(struct sockaddr *)&serv_addr,sizeof(struct sockaddr))==-1){
            perror("connect fail!");
        }    
        sprintf(GetRequestBuf,GET_RRQUEST_PACKAGE,weather_json,KEY,location);
        if((sendbytes=send(sockfd,GetRequestBuf,strlen(GetRequestBuf),0))==-1){
            perror("send fail");
        }
        recv(sockfd,WeatherRecvBuf,1024,0);    
        printf("Server return data is:
     %s
    ",WeatherRecvBuf);    
        /* 解析天气数据并保存到结构体变量weather_data中 */
        if (0 == strcmp(weather_json, NOW_JSON))        // 天气实况
        {
            cJSON_NowWeatherParse(WeatherRecvBuf, result);  
        }
        else if(0 == strcmp(weather_json, DAILY_JSON)) // 未来三天天气
        {
            //cJSON_DailyWeatherParse(GbkRecvBuf, result);    
        }
        
        close(sockfd);
        return 0;
    }

    部分实现,本人还在编写,此处做个记录,未完待续...

  • 相关阅读:
    alt、title和label
    css3-transform
    word break和word wrap
    聊聊svg
    JS严格模式
    JS提前声明和定义方式
    js跨域
    IE7append新的元素自动补充完整路径
    HTML5摇一摇
    基于jQuery仿uploadify的HTML5图片上传控件jquery.html5uploader
  • 原文地址:https://www.cnblogs.com/xiaosanxian/p/12639318.html
Copyright © 2011-2022 走看看