/*
*简单刷票系统
*
*云守护 542335496@qq.com
*/
#include
#include
#include
#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)
{
WSADATAwsd;
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]);
}