如何判断网络上的一个地址是个断链?

jeffreyren 2001-07-23 05:53:02
比如:  www.csdn.net/dsfsfgsfsdfdsf.htm  估计就是一个断链。

如何用程序判断?
...全文
129 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jeffreyren 2001-07-24
  • 打赏
  • 举报
回复
还有吗?
111222 2001-07-23
  • 打赏
  • 举报
回复
抱歉,上面if(StrStr(rbuff,"200 OK")没写完

应该是if(StrStr(rbuff,"200 OK")!=NULL)
111222 2001-07-23
  • 打赏
  • 举报
回复

WORD wVersionRequested;
WSADATA wsaData;
char rbuff[1024];
SOCKET sockfd;
SOCKADDR_IN addr;

wVersionRequested = MAKEWORD( 2, 0 );
WSAStartup( wVersionRequested, &wsaData )

sockfd = socket(AF_INET, SOCK_STREAM, 0);
addr.sin_family = AF_INET;
addr.sin_port = htons(80);
addr.sin_addr.s_addr = inet_addr("www.csdn.net");
connect(sockfd,(struct sockaddr *) &addr, sizeof(addr));

send(sockfd,"GET /dsfsfgsfsdfdsf.htm HTTP/1.0\r\n",sizeof("GET /dsfsfgsfsdfdsf.htm HTTP/1.0\r\n"),0);

Sleep(1000);
recv(sockfd,rbuff,sizeof(rbuff),0);
Sleep(1000);
closesocket(sockfd);
WSACleanup();

if(StrStr(rbuff,"200 OK")
AfxMessageBox(rbuff);
else
AfxMessageBox("该文件不存在或者无法访问");

azuo_lee 2001-07-23
  • 打赏
  • 举报
回复
如果是http,就HEAD(不行就直接GET),如果返回4xx或5xx就是断链;
如果是ftp,就SIZE,如果返回不是213就断链(呵呵,也有可能服务器不支持这命令,那就换一个,LIST怎么样?还不行,那RETR总行了吧?什么,还要PORT?那就先PORT吧……);
如果是……
呵呵,如果连服务器都连不上,那就省好多事了……
jeffreyren 2001-07-23
  • 打赏
  • 举报
回复
please

18,363

社区成员

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

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