共有回帖数  0  个 
	 
	
	
	
     
          
          
               
				
			 
				
					 
 
            
				   - 
						
						
							 
									希望能结识一些C语言的朋友
给大家做一套 VC 编写下载器 的视频
视频分为2部分
1:服务端 实现下载 统计 开机启动
2:生成器 界面编写 生成服务端.
本节视频代码:
#include "stdafx.h"
#include stdlib.h
#include WINSOCK2.h
#pragma comment(lib,"WS2_32.LIB")
BOOL Download(LPSTR szURL,LPSTR szSavePath)
{
     WSADATA wsa;
     WSAStartup(MAKEWORD(2,2),&wsa);
     SOCKET m_Socket = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
     SOCKADDR_IN m_Addr={NULL};
     m_Addr.sin_family = AF_INET;
     m_Addr.sin_port = htons(80);
     m_Addr.sin_addr.S_un.S_addr = inet_addr("192.168.1.100");
     if(connect(m_Socket,(SOCKADDR *)&m_Addr,sizeof(SOCKADDR))==SOCKET_ERROR)
     {
         closesocket(m_Socket);
         return FALSE;
     }
     CHAR szSendBuffer[]="GET /calc.exe HTTP/1.1rn"
                         "Host:192.168.1.100rn"
                         "Accept:*/*rn"
                         "User-Agent:Mozilla/4.0 (compatible; MSIE 5.00; Windows 98)rn"
                         "Connection:Keep-Alivern"
                         "rn";
     send(m_Socket,szSendBuffer,strlen(szSendBuffer),NULL);
    
     CHAR szRecvBuffer[1000]={NULL};
     WORD Size = sizeof(szRecvBuffer);
     ZeroMemory(szRecvBuffer,Size);
     WORD RecvLen = 0;
     RecvLen = recv(m_Socket,szRecvBuffer,Size,NULL);
    
     puts(szRecvBuffer);
     DWORD FileSize =0;
    
     CHAR *Point = strstr(szRecvBuffer,"Content-Length: ");
     Point+=strlen("Content-Length: ");
     FileSize = atoi(Point);
     WORD RevcHttpSize =0;
     for (WORD i=0;iRecvLen;i++)
     {
         if(szRecvBuffer=='r')
         {
             if(szRecvBuffer[i+1]=='n'&&szRecvBuffer[i+2]=='r'&&szRecvBuffer[i+3]=='n')
                 break;
         }
     }
     i+=4;
     DeleteFile(szSavePath);
     HANDLE m_Handle = CreateFile(szSavePath,GENERIC_WRITE,FILE_SHARE_WRITE,
         NULL,CREATE_NEW,FILE_ATTRIBUTE_NORMAL,NULL);
     DWORD Written =0;
     DWORD iCount = 0;
     WriteFile(m_Handle,&szRecvBuffer,RecvLen-i,&Written,NULL);
     iCount+=RecvLen -i;
     do 
     {
        
         RecvLen = recv(m_Socket,szRecvBuffer,Size,NULL);
         iCount+=RecvLen;
         WriteFile(m_Handle,szRecvBuffer,RecvLen,&Written,NULL);
     } while (iCount  FileSize);
     closesocket(m_Socket);
     CloseHandle(m_Handle);
     puts("下载成功!");
     return TRUE;
}
int main(int argc, char* argv[])
{
     Download(NULL,"c:\down.exe");
     return 0;
}
视频语音.
下载地址 1楼发上来 上传中.
http://u.115.com/file/f699961fba
不知道百度吞不吞
							 
							 
							 
							  
							  
							  楼主 2016-03-31 14:20 回复
						 
						 
           
          
          
         
   
         
      
 
   
             
                  
                  
 
 
 
     
	 
  
	Copyright © 2010~2015 直线网 版权所有,All Rights Reserved.沪ICP备10039589号
	
	意见反馈 | 
	关于直线 | 
	版权声明 | 
	会员须知