获取网站来源,获取额外的符号,winsock
Get website source, getting extra symbols, winsock
您好,我的套接字有些问题。我正在尝试获取网页源,我得到了我需要的一切,但在响应标题和页面源之间,我得到了一些额外的符号,所以我的问题是为什么我得到这些额外的符号。
我从某个地方得到了那个"18ad"......
来源于页面:
<..>
Server: Apache-Cloud
Transfer-Encoding: chunked
Date: Thu, 27 Sep 2012 14:46:43 GMT
Connection: close
X-Cache: M
18ad
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xh
<..>
十六进制视图:
char: X-Cache: M......18ad...<!DO
hex : 58 2D 43 61 63 68 65 3A 20 4D 0D 0D 0A 0D 0D 0A 31 38 61 64 0D 0D 0A 3C 21 44 4F
请求标头:
$GET / HTTP/1.1rn
Host: www.demotivation.usrn
Connection: closernrn
我的代码:
char* ip = "www.demotivation.us";
char* url = "92.61.41.215";
<..>
sockAddr.sin_family = AF_INET;
sockAddr.sin_addr.s_addr = inet_addr(ip);
sockAddr.sin_port = htons(80);
<..>
s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
connect(s, (SOCKADDR*)&sockAddr, sizeof(SOCKADDR_IN);
<..>
// receive source to temporary buffer
do
{
bytes = recv(s, buffer, BUFFER_SIZE, 0);
buffer[bytes] = ' ';
cout << buffer;
} while(bytes > 0);
18ad
是分块编码方案的一部分。这意味着内容是分几个块而不是一个块下载的。18ad
指示下一个块的大小(在本例中为 6317 字节)。
有关说明,请参阅分块传输编码。
请注意,recv()
可以在失败时返回 -1
,在用作数组索引之前应检查这些。
相关文章:
- 获取隐式转换溢出从无符号到已签名的警告
- 如何从二进制文件中的给定符号中获取调用程序图
- 使用jsoncpp-NuGet包时获取未解析的外部符号
- 获取未定义的符号:尝试使用Clang地址清理器时__asan_memset
- 获取 constexpr 全局变量(不是静态成员)的链接器符号
- 获取两个无符号整数 C++ 乘积的高 32 位的有效方法
- 在C 中获取Ncurses Chtype或未符号字符的整数值
- 尝试将返回无符号值的函数分配给指向无符号的指针时,继续获取 SIGSEGV
- 使用字符时获取 ╠ 符号 'e'
- 在C++中以字符串形式获取ECL符号名称
- 如何从 c++ 或 cocos2dx 中的表情符号中获取 unicode
- 获取有关 ELF 中的函数和相关符号的信息
- 如何按位获取数字而不是求反符号位
- 从文件输入中获取奇怪的符号
- OSX "ld" : 如何显示未解析符号的损坏名称?如何获取地图文件?
- 如何获取标准 C/C++ 中的文件分隔符符号:/ 或 \
- 获取在GDB便利性变量中持有的价值的符号信息
- 在Python中获取从有符号整数到无符号整数的转换
- 获取网站来源,获取额外的符号,winsock
- 获取符号错误:'ld: symbol(s) not found'