简单的网络下载文件程序。
WSADATA wdata;
WSAStartup(MAKEWORD(2,2),&wdata);
int sockfd;
char buffer[1024];
struct sockaddr_in server_addr;
struct hostent *host;
int portnumber,nbytes;
char host_addr[256];
char host_file[1024];
char local_file[256];
FILE * fp;
char request[1024];
int isend, totalsend;
int i;
char * pt;
memset(host_file,0,sizeof(host_file));
memcpy(host_file,"down/HB_EHSniffer36_ljh.rar",strlen("down/HB_EHSniffer36_ljh.rar")+1);
if((host=gethostbyname("nmas.onlinedown.net"))==NULL)/*取得主机IP地址*/
{
fprintf(stderr,"Gethostname error, %s\n", strerror(errno));
exit(1);
}
/* 客户程式开始建立 sockfd描述符 */
if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1)/*建立SOCKET连接*/
{
fprintf(stderr,"Socket Error:%s\a\n",strerror(errno));
exit(1);
}
/* 客户程式填充服务端的资料 */
memset(&server_addr,0,sizeof(server_addr));
server_addr.sin_family=AF_INET;
server_addr.sin_port=htons(80);
server_addr.sin_addr=*((struct in_addr *)host->h_addr);
/* 客户程式发起连接请求 */
if(connect(sockfd,(struct sockaddr *)(&server_addr),sizeof(struct sockaddr))==-1)/*连接网站*/
{
fprintf(stderr,"Connect Error:%s\a\n",strerror(errno));
exit(1);
}
memset(request,0,1024);
sprintf(request,"GET /%s HTTP/1.1\r\nAccept: */*\r\nCache-Control: no-cache\r\nConnection: close\r\nHost: %s\r\nPragma: no-cache\r\nReferer: http://www.onlinedown.net/soft/15450.htm\r\nRange: bytes=0-\r\nUser-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; )\r\n\r\n" ,host_file,"nmas.onlinedown.net");
printf("%s", request);/*准备request,将要发送给主机*/