- #include<sys/types.h>
- #include<sys/stat.h>
- #include<fcntl.h>
- #include<winsock2.h>
- #include<unistd.h>
- #include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
- #include <errno.h>
- #include <locale.h>
- #define bzero(p, s) memset(p, 0, s)
- #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 MAXFILENAME 14
- #define DEBUG 1
- typedef struct webnode
- {
- char * host; /* 网页所在的主机 */
- int port; /* 网络服务器所使用的端口 */
- char * dir; /* 网页所在的目录 */
- char * page; /* 网页文件名 */
- char * file; /* 本地保存的文件名 */
- char IsHandled; /* 是否处理过 */
- struct webnode * brother; /* 兄弟节点链表指针 */
- struct webnode * child; /* 子节点链表指针 */
- } WEBNODE;
- struct sockaddr_in server_addr;
- int sockfd = 0, dsend = 0, totalsend = 0, nbytes = 0, reqn = 0, i = 0, j = 0, ret = 0;
- struct hostent *host;
- char request[409600] = "", buffer[1024] = "", httpheader[1024] = "";
- int FileNumber = 0;
- char e[2] = "@/";
- WEBNODE * NodeHeader, * NodeTail, * NodeCurr;
- char * mapped_mem;
- int GetHost(char * , char ** , char ** , int * , char ** ); /**/
- void AnalyzePage(WEBNODE *); /**/
- void AddInitNode(char *, char *, int, char * ); /**/
- void HandleInitNode(WEBNODE *); /**/
- void DisplayNode(WEBNODE *); /**/
- void HandOneNode(WEBNODE *); /**/
- void DoneWithList(int); /**/
- void DoOnce(); /**/
- void ConnectWeb(void); /**/
- void SendRequest(void); /**/
- void ReceiveResponse(void); /**/
- void GetEmail(char * ); /**/
- void GetLink(char * ); /**/
- void GetBeforePos(char * , char ** ); /**/
- void GetAfterPos(char * , char ** ); /**/
- void AddChildNode(WEBNODE * , char * ); /**/
- void GetAfterPosWithSlash(char * , char ** ); /**/
- void GetMemory(char ** , int ); /**/
- int IsExistWeb(WEBNODE * , char * , char * , int , char * ); /**/
- void Rstrchr(char * , int , char ** ); /**/
- int GetLocalAgent(char * UserAgent, char * Accept, char * AcceptLanguage, char * AcceptEncoding, char * AcceptCharset, char * KeepAlive, char * Connection, char * ContentType); /**/
- /**************************************************************
- 功能:设置 HTTP 协议头内容的一些固定值
- ***************************************************************/
- int GetLocalAgent(char * UserAgent, char * Accept, char * AcceptLanguage, char * AcceptEncoding, char * AcceptCharset, char * KeepAlive, char * Connection, char * ContentType)
- {
- memcpy(UserAgent, USERAGENT, strlen(USERAGENT));
- 标签: tival压力变送器tst