取得html代码的时候的问题,recv后来返回总是零

asphp 2005-09-26 09:53:00
char buf[10001];
int iret;
string sresp;
while((iret=recv(buf,1000,0))!=-1)
{
sresp+=buf;
}


但函数会死了,html代码只得到一半,后来查查,iret总是等于零,怀疑是服务端强制断开所致,如何解决这个问题?
...全文
208 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
msvcp60 2006-02-07
  • 打赏
  • 举报
回复
我的办法是 在线程李接收数据,这样你的代码就可以正常工作了
msvcp60 2006-02-07
  • 打赏
  • 举报
回复
跟我遇到的问题一样,我也是通过SOCKET发送GET请求,HTTP返回的代码接收不完整。
asphp 2005-10-29
  • 打赏
  • 举报
回复
???为什么老没有人回我呢?高手都到哪去了?
lianglp 2005-10-29
  • 打赏
  • 举报
回复
当服务器强制关闭连接的socket后,客户端调用recv()将返回0。
asphp 2005-10-23
  • 打赏
  • 举报
回复
我不用封装的就不行吗?郁闷中!
laofang 2005-09-27
  • 打赏
  • 举报
回复
取HTML代码用CInternetFile多方便呀:
---
CInternetSession session;
CInternetFile* file=NULL;
CString strUrl = "http://news.sina.com/";

try
{
file=(CInternetFile*)session.OpenURL(strUrl);
}
catch(CInternetException*pEx)
{
file=NULL;
pEx->Delete();
//return;
}

if(file)
{
// 开始分析呀……
file->Seek(1831L, CFile::begin);
file->ReadString(strLine);


//也可以在此用个循环全部取下来……
}

if(file != NULL)
file->Close();
asphp 2005-09-27
  • 打赏
  • 举报
回复
CSDN上就没有人会打这个问吗?
asphp 2005-09-26
  • 打赏
  • 举报
回复
如上的代码还是没有用,为什么?
asphp 2005-09-26
  • 打赏
  • 举报
回复
附:
刚才代码省了点,
char buf[10001];
int iret;
string sresp="";
while((iret=recv(buf,1000,0))!=-1)
{
buf[iret-1]='\0';
sresp+=buf;
}

18,363

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧