在visual studio上调试通过的,这个只是一个示例,还有很多不完善的细节(鲁棒性)需要考虑。
主要流程:
1)创建一个TCP连接
2)发送一个HTTP GET命令
3)读取一段数据,解析出Content-Length字段,找到MP3文件的长度
4)循环读取数据,直到读取到的数据量大于等于MP3文件的长度
#include "stdafx.h"
#include <Winsock2.h>
#include <iostream>
#include <cstdio>
#pragma comment(lib, "ws2_32.lib")
int _tmain(int argc, _TCHAR* argv[])
{
const char CTL_STR[] = "Content-Length";
// 加载socket动态链接库(dll)
WORD wVersionRequested;
WSADATA wsaData; // 这结构是用于接收Wjndows Socket的结构信息的
int err;
FILE *hFile = fopen("out.mp3","wb");
wVersionRequested = MAKEWORD( 1, 1 ); // 请求1.1版本的WinSock库
err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 ) {
return -1;