小第我用vc+socket写了个客户端的程序,是想连接到服务器上,然后将asp文件输出的结果做一些计算现在的问题是,我一直无法得到网页文件,连html文件都得不到,服务器返回是404,找不到文件
我的请求头是这样的GET /bbs/dl_buy.asp HTTP/1.1\r\n
Host: 61.129.70.172\r\n
Accept: */*\r\n
Referer: www.acgmemories.net/bbs/\r\n
User-Agent:Mozilla/4.0 (compatible; MSIE 5.00; Windows 98)\r\nConnection:Keep-Alive\r\n
Cache-Control: no-cache\r\n
Range: bytes=0- \r\n\r\n
而使用flashget就可以得到这个文件,而且flashget的日志中,和我的请求头只有几个地方的不同。另外,还有个问题,如果我使用域名的方式,就可以得到文件,如浏览器里输入
www.acgmemories.net/bbs/dl_buy.asp,是可以的
但使用
http://61.129.70.172/bbs/dl_buy.asp,就不行了如果是域名把地址转了,为什么flashget可以?所以我想知道,如何得到我想要的文件?
我的请求头是这样的GET /bbs/dl_buy.asp HTTP/1.1\r\n
Host: 61.129.70.172\r\n
Accept: */*\r\n
Referer: www.acgmemories.net/bbs/\r\n
User-Agent:Mozilla/4.0 (compatible; MSIE 5.00; Windows 98)\r\nConnection:Keep-Alive\r\n
Cache-Control: no-cache\r\n
Range: bytes=0- \r\n\r\n
而使用flashget就可以得到这个文件,而且flashget的日志中,和我的请求头只有几个地方的不同。另外,还有个问题,如果我使用域名的方式,就可以得到文件,如浏览器里输入
www.acgmemories.net/bbs/dl_buy.asp,是可以的
但使用
http://61.129.70.172/bbs/dl_buy.asp,就不行了如果是域名把地址转了,为什么flashget可以?所以我想知道,如何得到我想要的文件?
换成
'\x0d'
'\x0a'
看看
说的对,有人曾跟我说过,那个空间是没有ip(虽然不太明白这个的意思),要访问只能通过域名,所以这个问题也就转化为域名解析了下面是连接服务器的部分代码,struct sockaddr_in ServerSocket; // 连接到的位置
ServerSocket.sin_addr.s_addr = inet_addr (strIP);
ServerSocket.sin_family=AF_INET;
ServerSocket.sin_port=htons(HttpPort);在这里,我不知道怎样处理域名与ip,ServerSocket.sin_addr.s_addr 好象只接受ip字符串,而不接受域名哪位大哥能说说如何通过域名连接服务器?// 准备socket
(*sock)=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
if ((*sock)==INVALID_SOCKET)
{
AfxMessageBox("Error when socket");
return FALSE;
}
/// 准备连接信息
struct sockaddr_in ServerSocket; // 连接到的位置
ServerSocket.sin_addr.s_addr = inet_addr (strIP);
ServerSocket.sin_family=AF_INET;
ServerSocket.sin_port=htons(HttpPort); // 连接
if (connect((*sock), (const struct sockaddr *)&ServerSocket, sizeof(ServerSocket))==SOCKET_ERROR)
{
AfxMessageBox("第一次连接失败,准备第二次连接");
if (connect((*sock)
,(const struct sockaddr *)&ServerSocket
,sizeof(ServerSocket))==SOCKET_ERROR)
{
closesocket((*sock));
AfxMessageBox("连接失败");
return FALSE;
}
}