📄 http传输.cpp
字号:
#include<Winsock2.h>
#include<iostream>
using namespace std;
#pragma comment(lib,"ws2_32.lib")
#define MAXLENTH 100
void SendString(SOCKET sock,LPCSTR str);
void main()
{
WSADATA ws;
//使用的套接字
SOCKET s;
//HTTP 服务器地址
struct sockaddr_in addr;
//下载的文件名
char filename[MAXLENTH];
int iResult;
long lResult;
char strSubAddr[1000],strBuffer[10000];
//创建一个流式Socket
lResult = WSAStartup(MAKEWORD(2,2),&ws);
s = socket(AF_INET,SOCK_STREAM,0);
addr.sin_family = AF_INET;
//使用http的端口80
addr.sin_port = htons(80);
//地址转换
addr.sin_addr.S_un.S_addr = inet_addr("220.181.3.20");
//
iResult = connect(s,(struct sockaddr*)&addr,sizeof(addr));
if(iResult == SOCKET_ERROR)
{
//连接失败
cout << "连接失败!"<< WSAGetLastError();
WSACleanup();
}
else
{
//连接成功
//使用Get命令取根目录下的文件
strcpy(strSubAddr,"GET/HTTP/1.1\r\n Host:www.hao123.com\r\nAccept: txt/html\r\nUser-Agent: Mozilla/4.0 (compatible; MSIE 5.00; Windows 98)\r\nConnection:Keep-Alive\r\n\r\n");
//strcpy(strSubAddr,"GET / HTTP/1.1\r\nHost:www.hao123.com\r\n Accept: txt/html\r\nUser-Agent: Mozilla/4.0compatible; MSIE 5.00; Windows 98)\r\nConnection:Keep-Alive\r\n\r\n");
//1.1 Host:www.sina.com.cn Accept:*/* User-Agent:Mozilla/4.0 (compatible; MSIE 5.00; Windows NT) Connection:Keep-Alive");
/*SendString(s,"GET / HTTP/1.1\r\n");
SendString(s,"Host:www.hao123.com\r\n");
SendString(s,"Accept: txt/html\r\n");
SendString(s,"User-Agent: Mozilla/4.0");
SendString(s,"(compatible; MSIE 5.00; Windows 98)\r\n");
SendString(s,"Connection:Keep-Alive\r\n");
SendString(s,"\r\n");
SendString(s,"\r\n");//最后要加空行*/
//strcpy(filename,"index.html");
iResult = send(s,strSubAddr,strlen(strSubAddr),0);
if(iResult == SOCKET_ERROR)
{
//连接失败
cout << "失败!"<< WSAGetLastError();
WSACleanup();
}
//下载文件
strset(strBuffer,' ');
do
{//cout << "hello1" ;
//cout << "hello2" ;
iResult = recv(s,strBuffer,sizeof(strBuffer),0);
if(iResult == SOCKET_ERROR)
{
//连接失败
cout << "接受失败!"<< WSAGetLastError()<<endl;
WSACleanup();
}
//cout << "hello3";
//cout << strBuffer;
}while(iResult != 0);
}
cout << strBuffer <<endl;
closesocket(s);
WSACleanup();
}
void SendString(SOCKET sock,LPCSTR str)
{
send(sock,str,strlen(str),0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -