b******n 发帖数: 1629 | 1 下面两段代码
for(int i = 0; i < 10; ++i)
{
sendhttprequest();
readfromsocket();
}
和
for(i)
{
sendhttprequest();
}
readfromsocket();
第二段可以正确的读到10个request的结果,但第一段只能读到第一个request的结果。
http里面用的keep-alive选项。
readfromsocket()实现很简单
第一段代码对于第二个以后的请求,read结果一直为负。这个是怎么回事?
while((nbytes=read(sockfd,buffer,1024)) > 0)
{
i += nbytes * 8;
} | i*****o 发帖数: 1714 | 2 这个要用sniffer看看wire是什么东西。
【在 b******n 的大作中提到】 : 下面两段代码 : for(int i = 0; i < 10; ++i) : { : sendhttprequest(); : readfromsocket(); : } : 和 : for(i) : { : sendhttprequest();
| b******n 发帖数: 1629 | 3 没用过sniffer。
不知道这个read函数碰到结果返回负数以后,后面是不是对socket有什么状态上的影响
【在 i*****o 的大作中提到】 : 这个要用sniffer看看wire是什么东西。
|
|