📄 pagedown.cpp
字号:
# include<iostream>
# include<fstream>
# include<string>
# include<netdb.h>
# include <netinet/in.h>
# include<arpa/inet.h>
# include"pageDown.h"
# define serverport 80
# include "client.h"
using namespace std;
string GetPageContent(string url)
{
string pageContent;
string serverURL,position;
string::size_type idx;
idx=url.find("/", 7);
if(idx!=std::string::npos)
{
serverURL=url.substr(7,idx-7);
position=url.substr(idx+1);
}
else
{
serverURL=url.substr(7);
}
cout<<"url"<<serverURL<<endl;
string ip=GetServerIP(serverURL);
string httprequest=HttpGetHead(serverURL,position);
//int flag=0;
Client client= Client(ip,serverport);
int sockID=client.getSockID();
int length=httprequest.size();
cout<<length<<"head"<<endl;
if(client.SendMsg(sockID,httprequest)==true)
cout<<"send success"<<endl;
else
exit(1);
pageContent=client.RecvMsg(sockID);
//cout<<pageContent<<endl;
//exit(1);
cout<<pageContent.length()<<"con length"<<endl;
client.CloseSocket(sockID);
return pageContent;
//closesocket(sockID);
}
string GetServerIP(string serverURL)
{
char c=serverURL[serverURL.size()-1];
if(47<c && c<58) //数字
return serverURL;
else
{
hostent * serverip;
char *ip;
serverip=gethostbyname(serverURL.c_str());
if(serverip->h_addr_list[0])
{
in_addr addr;
memmove(&addr,serverip->h_addr_list[0],4);
ip=inet_ntoa(addr);
string sip(ip);
return sip;
}
else
return "";
}
}
string HttpGetHead(string server,string position)
{
string httprequest;
httprequest+="GET /";
httprequest+=position;
httprequest+=" HTTP/1.1\r\n";
httprequest+="Host:";
httprequest+=server;
httprequest+="\r\n";
httprequest+="Accept:*/*\r\n";
httprequest+="User-Agent:Mozilla/4.0 (compatible; MSIE 6.00; Windows XP)\r\n";
httprequest+="Connection:Keep-Alive\r\n";
httprequest+="\r\n";
return httprequest;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -