2023年12月22日发(作者:)

75975922224225226227228229 printf("Download successful ^_^nn");}

int main(int argc, char const *argv[]){ char url[2048] = "127.0.0.1"; char domain[64] = {0}; char ip_addr[16] = {0}; int port = 80; char file_name[256] = {0};

if (argc == 1) { printf("Input a valid URL pleasen"); exit(0); } else strcpy(url, argv[1]);

parse_url(url, domain, &port, file_name);

if (argc == 3) strcpy(file_name, argv[2]);

get_ip_addr(domain, ip_addr); if (strlen(ip_addr) == 0) { printf("can not get ip addressn"); return 0; }

puts("n>>>>Detail<<<<"); //设置http请求头信息 char header[2048] = {0}; sprintf(header, "GET %s HTTP/1.1rn" "Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8rn" "User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537(KHTML, like Gecko) Chrome/47.0.2526Safari/537.36rn" "Host:%srn" "Connection:closern" "rn" ,url, domain); printf("n>>>>GET header:<<<

//创建套接字 int client_socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if (client_socket < 0) { printf("invalid socket descriptor: %dn", client_socket); exit(-1); }

//创建地址结构体 struct sockaddr_in addr; memset(&addr, 0, sizeof(addr)); _family = AF_INET; _addr.s_addr = inet_addr(ip_addr); _port = htons(port);

//连接服务器 int res = connect(client_socket, (struct sockaddr *) &addr, sizeof(addr)); if (res == -1) { printf("connect failed, return: %dn", res); exit(-1); }