while(剩余大小>0)
{
res = recv(mHttpSock,fbuf,1024,0);
剩余大小 -= res;
if(res >= 0)
{
f.Write(fbuf,res);
}
}
偶尔res会出现为0的现象,一旦为0,之后每次接收recv到的数据都为0,除非重新下载。
请问这是怎样引起的呀?
{
res = recv(mHttpSock,fbuf,1024,0);
剩余大小 -= res;
if(res >= 0)
{
f.Write(fbuf,res);
}
}
偶尔res会出现为0的现象,一旦为0,之后每次接收recv到的数据都为0,除非重新下载。
请问这是怎样引起的呀?
解决方案 »
- 怎么判断编辑框处于获得焦点状态
- 请问~~~~~~~~~
- 关于DSW文件的一个问题
- 在vc里,一个对话框中弹出新的对话框时,如何让原先的对话框保持“可用状态”?
- 如何不加载菜单?
- 请问高手 如何更改vc向导生成的应用程序主窗体的类名我是指用spy里看到的名称
- 那为大侠帮忙把以下VB代码转成 VC的?我实在是不会了
- 大家帮忙看看:为什么我的CEdit控件在显示多行文字时会上下行重影!(解决就结帖)
- 百分求教!
- mscomm控件中的Handshake中的握手怎么用啊?
- api函数 相同 比如 ws2_32.dll 和 wsock32.dll 中 send 函数 分别怎么调用
- 有没有查看各个函数运行时间的工具?谢谢
你的程序应该这样写:
while(剩余大小>0)
{
res = recv(mHttpSock,fbuf,1024,0);
if(res==SOCKET_ERROR||res<=0||res==WSAEWOUDLEBOCLK)
break;
else{
剩余大小 -= res;
f.Write(fbuf,res);
}
res为0说明什么?
if(rcv > 0)
{
}
else
{
close(sock);
return printf("Problem with recv()\n");
}