C-C中,在使用socket时,通过HTTP获取XML文件时,recv函数返回,最后一次返回0总是特别的慢,请问这是什么原因?

发布于 2017-04-09 23:05:38 字数 501 浏览 1158 评论 1

while ( ReceivedCounter < RequestBytes )
{
rp = recv(socket,ReceiveBuffer,LENGTH_OF_RECEIVE_BUFFER,0);
if (0 >= rp)
{
if (errno == EAGAIN)
continue;
else if (errno == EINTR)
continue;
else
{
break;
}
}

memcpy(&DataBuffer[ReceivedCounter],ReceiveBuffer,rp);
ReceivedCounter += rp;
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

瑾兮 2017-04-17 06:15:09 1 楼

其实在rp < LENGTH_OF_RECEIVE_BUFFER时或者准确的说在 ReceivedCounter = RequestBytes,就已经可以跳出循环了。哪有需要返回0的需要?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击“接受”或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。