简单刷票系统 c语言实现
2013-01-04 12:04
337 查看
/* * 简单刷票系统 * * 云守护 542335496@qq.com */ #include <stdio.h> #include <winsock2.h> #include <winbase.h> #pragma comment(lib,"ws2_32") #define RefreshTimes 10 //刷新次数 char host[128]; char path[128]; // 函数声明 DWORD WINAPI SendThread(LPVOID lpParam); void SetParam(); void main(int argc,char * argv[]) { HANDLE hThread[RefreshTimes]; DWORD dwThread[RefreshTimes]; int i; SetParam(); // 设置相关参数 // 循环创建线程完成数据发送功能 for( i = 0 ; i < RefreshTimes ; i++ ) { hThread[i] = CreateThread(NULL,0,SendThread,(LPVOID)i,0,&dwThread[i]); if( hThread == NULL ) { printf("\tCreateThread Failed.\n"); exit(0); } Sleep(100); CloseHandle(hThread); } } // 线程函数,向服务器发送数据 DWORD WINAPI SendThread(LPVOID lpParam) { WSADATA wsd; SOCKET local; SOCKADDR_IN addr; HOSTENT * Host = NULL; if( WSAStartup(MAKEWORD(2,2),&wsd) != 0) { printf("\tFailed To Load Winsock Library!\n"); exit(0); } local = socket(AF_INET,SOCK_STREAM,0); if( local == INVALID_SOCKET) { printf("\tFailed To Create Socket\n"); exit(0); } addr.sin_family = AF_INET; addr.sin_port = htons(80); addr.sin_addr.S_un.S_addr = inet_addr(host); if( addr.sin_addr.S_un.S_addr == INADDR_NONE ) { // 解析主机地址 Host = gethostbyname(host); if( Host == NULL ) { printf("\tUnable To Resolve Server:%s\n",host); return 0; } CopyMemory(&addr.sin_addr,Host->h_addr_list[0],Host->h_length); printf("\tSend To:%s\n",inet_ntoa(addr.sin_addr)); } // 尝试与服务器建立连接 if( SOCKET_ERROR == connect(local,(sockaddr*)&addr,sizeof(SOCKADDR)) ) { printf("\tFailed To Connect To The Server!\n"); exit(0); } // 构造发送数据 char SendBuf[512]; memset(SendBuf,'\0',512); strcpy(SendBuf,"GET "); char PartOne[] = " HTTP/1.1\r\nAccept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/msword, application/vnd.ms-excel, application/vnd.ms-powerpoint, */*\r\nAccept-Language: zh-cn\r\nAccept-Encoding: gzip, deflate\r\nUser-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)\r\nHost: "; char PartTwo[] = "\r\nConnection: Keep-Alive\r\n\r\n"; strcat(SendBuf,path); strcat(SendBuf,PartOne); strcat(SendBuf,host); strcat(SendBuf,PartTwo); // 将数据发送给服务器 if( send(local,SendBuf,strlen(SendBuf)+1,0) == SOCKET_ERROR ) { printf("\tSend Data Error.\n"); } closesocket(local); WSACleanup(); return 0; } void SetParam() { char Host_Temp[128]; char Path_Temp[128]; printf("\n\tMade By 云守护\n\tQQ:542335496\n\tEmail:542335496@qq.com\n"); printf("\tGet The Host:"); gets(Host_Temp); fflush(stdout); strcpy(host,&Host_Temp[0]); printf("\tGet The Path of WebPage:"); gets(Path_Temp); strcpy(path,&Path_Temp[0]); }
相关文章推荐
- C语言实现简单学生管理系统
- C语言简单用链表实现学生管理系统
- 简单的银行系统C语言可实现--谈不上完全原创,也是作业的一部分
- 学生信息管理系统简单模拟(C语言实现)
- 基于C语言实现简单的12306火车售票系统
- 【脑洞系列】c语言对死机系统的简单实现
- 单链表的应用:用C语言实现简单的员工管理系统(新建、增、删、改、查、排序)
- Linux环境下C语言实现简单的基于文件的学生信息管理系统
- C语言模拟通讯录系统的简单实现
- C语言实现简单学生成绩管理系统
- c语言实现的简单的员工工资管理系统
- C语言-实现简单的车辆管理系统-课程设计
- C语言 实现的简单手机通讯录系统
- C语言实现简单学籍管理系统
- 最简单的单点登陆SSO系统的实现思路
- Python使用Redis实现一个简单作业调度系统
- 实现一个简单的银行储蓄系统,承担活期用户的存款和取款业务 (只是初步的写出)
- 使用Node.js + MongoDB实现一个简单的日志分析系统
- 一个群博系统的简单实现
- 常用Hash算法(C语言的简单实现)