• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > c语言获取直播吧最近一周nba比赛信息

c语言获取直播吧最近一周nba比赛信息

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c语言获取系统时间,c语言获取当前时间,c语言获取数组长度,c语言获取字符串长度,c语言获取随机数等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

就是用c语言的写的一个简单http请求,并分析其响应,原理很简单,主要是分析http响应,麻烦的是提取其中的比赛信息

#define USERAGENT "Wget/1.10.2"
#define ACCEPT "*/*"
#define ACCEPTLANGUAGE "zh-cn,zh;q=0.5"
#define ACCEPTENCODING "gzip,deflate"
#define ACCEPTCHARSET "gb2312,utf-8;q=0.7,*;q=0.7"
#define KEEPALIVE "300"
#define CONNECTION "keep-alive"
#define CONTENTTYPE "application/x-www-form-urlencoded"

#define HOSTNAME "www.zhibo8.cc"
#define DEBUG 1
char Request[409600]="";
char Recive[409600]="";
struct hostent *host;
int sockfd=0;
FILE *fp;
struct sockaddr_in server_addr;
int year;
int mon;
int day;
int wday;
int count=0;

void HandLine(char *l);
void SaveResult();
void GetDayInfo();
void GetTime();
int GetLocalAgent(char * UserAgent, char * Accept, char * AcceptLanguage, char * AcceptEncoding, char * AcceptCharset, char * KeepAlive, char * Connection, char * ContentType)
{
  memcpy(UserAgent, USERAGENT, strlen(USERAGENT));
  memcpy(Accept, ACCEPT, strlen(ACCEPT));
  memcpy(AcceptLanguage, ACCEPTLANGUAGE, strlen(ACCEPTLANGUAGE));
  memcpy(AcceptEncoding, ACCEPTENCODING, strlen(ACCEPTENCODING));
  memcpy(AcceptCharset, ACCEPTCHARSET, strlen(ACCEPTCHARSET));
  memcpy(KeepAlive, KEEPALIVE, strlen(KEEPALIVE));
  memcpy(Connection, CONNECTION, strlen(CONNECTION));
  memcpy(ContentType, CONTENTTYPE, strlen(CONTENTTYPE));
  return 0;
}


void CreatRequest()
{
    char UserAgent[1024] = "", Accept[1024] = "", AcceptLanguage[1024] = "", AcceptEncoding[1024] = "", AcceptCharset[1024] = "", KeepAlive[1024] = "", Connection[1024] = "", ContentType[1024] = "";
    if((host=gethostbyname("www.zhibo8.cc"))==NULL) /* get ip address by domain */
     {
           if(DEBUG)  fprintf(stderr,"\tGethostname '%s' error, %s\n", HOSTNAME, strerror(errno));
           exit(1);
     }
    GetLocalAgent(UserAgent, Accept, AcceptLanguage, AcceptEncoding, AcceptCharset, KeepAlive, Connection, ContentType); /* Get client browser information */
    sprintf(Request, "GET /%s/%s HTTP/1.0\r\nHost: %s\r\nUser-Agent: %s\r\nAccept: %s\r\nConnection: %s\r\n\r\n", "/", "", HOSTNAME, UserAgent, Accept, Connection);
}
</div>

void SendRequest()
{
    int wn=0;
    wn=write(sockfd,Request,strlen(Request));
    if(wn==-1)
    {
     fprintf(stderr,"\t SEND ERROR:%s\a\n",strerror(errno));
     exit(1);
    }
     fprintf(stdout, "\n\tRequest.  send OK!\n" );
}
void SaveResult()
{
    fd_set readfds;
   struct timeval tival;

  
   int i,j,ret;
   i=j=ret=0;
  int n=0;
   RECIVE:
   FD_ZERO(&readfds);
   tival.tv_sec=10;
   tival.tv_usec=0;
   if(sockfd>0)
     FD_SET(sockfd,&readfds);
   ret=select(sockfd+1,&readfds,NULL,NULL,&tival);
   if(ret==0)
   {
     if(n++<2)
      goto RECIVE;

   }
   if(FD_ISSET(sockfd,&readfds))
   {
     /*读取全部相应内容到本地文件*/
     while(read(sockfd,Recive,sizeof(Recive)))
     {       
        fwrite(Recive,sizeof(Recive),1,fp);
        memset(Recive,0,sizeof(Recive));
     }

}
}
</div>

 

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • c语言获取直播吧最近一周nba比赛信息

相关文章

  • 2017-05-28VC实现图片拖拽及动画的实例
  • 2017-05-28教你5分钟轻松搞定内存字节对齐
  • 2017-05-28C++设计模式编程中简单工厂与工厂方法模式的实例对比
  • 2017-05-28C语言使用openSSL库AES模块实现加密功能详解
  • 2017-05-28构造函数不能声明为虚函数的原因及分析
  • 2017-05-28用C++面向对象的方式动态加载so的方法
  • 2017-05-28C++中的异常处理机制详解
  • 2017-05-28详解socket阻塞与非阻塞,同步与异步、I/O模型
  • 2017-05-28C语言学生管理系统源码分享
  • 2022-04-30C语言指针变量的定义和使用(精华)

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • WIN32程序获取父进程ID的方法
    • C语言与JAVA的区别是什么(推荐)
    • C++使用CriticalSection实现线程同步实例
    • C++处理键盘输入的方法
    • 解析在main函数之前调用函数以及对设计的作用详解
    • C++设计模式之桥接模式
    • C语言中的pause()函数和alarm()函数以及sleep()函数
    • C++操作MySQL大量数据插入效率低下的解决方法
    • 使用C# 判断给定大数是否为质数的详解
    • c语言中用位运算实现加法技巧介绍

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有