在慢慢看完René Nyffenegger先生的封装的Socket类后,收获不少!

 

      在百度查找关键词abcdef:

 

1、在WildPackets OmniPeek里,查询关键词“abcdef”时抓包得到的信息:

 

VC模拟发送数据包-百度关键词查找_c

 

 

2、C++源代码:

/************************************************************************/ /* 感谢René Nyffenegger提供如此方面的Socket类库,再此致敬! /* 源码来自: http://www.adp-gmbh.ch /* by Koma 2009.09.06 16:15 /************************************************************************/ #include "Socket.h" #include <iostream> using namespace std; // 函数声明 int PostKeyWord(); /************************************************************************/ /* 函数说明:main入口函数 /* 函数参数:无 /* 返 回 值:成功返回0,失败返回1 /************************************************************************/ int main() { PostKeyWord(); return 0; } /************************************************************************/ /* 函数说明:模拟百度查询关键词 /* 函数参数:无 /* 返 回 值:成功返回0,失败返回1 /************************************************************************/ int PostKeyWord() { try { // 我抓包分析,百度似乎并不大支持POST SocketClient s("www.baidu.com", 80); s.SendLine("GET /s?wd=abcdef HTTP/1.0"); s.SendLine("Host: www.baidu.com"); s.SendLine(""); while (1) { string l = s.ReceiveLine(); if (l.empty()) break; cout << l; cout.flush(); } } catch (const char* s) { cerr << s << endl; } catch (std::string s) { cerr << s << endl; } catch (...) { cerr << "unhandled exception/n"; } return 0; }

 

 

3、程序运行效果:

VC模拟发送数据包-百度关键词查找_c_02

 

 

4、源码下载:

 

     网盘下载 http://www.rayfile.com/files/20c27651-9ac0-11de-9396-0014221b798a/