CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  网络编程

用SOCKET建立HTTP连接?高分!~

楼主iceeajp(代理主教)2006-03-13 09:45:20 在 VC/MFC / 网络编程 提问

如何用C++实现建立HTTP连接呢?  
  不使用MFC里的CHttpConnection类等元素,使用SOCKET来实现?  
  如果谁有这方面的实例能发给我吗?  
  E-mail:ukyoukyo@sina.com 问题点数:100、回复次数:16Top

1 楼striking(庸人自扰)回复于 2006-03-13 10:52:37 得分 10

准备学习。。Top

2 楼laiyiling(陌生人[MVP])回复于 2006-03-13 11:10:01 得分 20

http://topic.csdn.net/t/20030910/17/2245692.html  
  http://topic.csdn.net/t/20030112/20/1351658.htmlTop

3 楼gohappy_1999(碧水蓝天)回复于 2006-03-13 12:00:25 得分 5

gzTop

4 楼iceeajp(代理主教)回复于 2006-03-13 12:01:48 得分 0

楼上的东西不错!  
  还有其他的资料么,我想多看一点,除了HTTP,还有FTP等!~Top

5 楼wangjia184(我就是传说中的。。。。。。SB)回复于 2006-03-13 12:35:24 得分 5

socket   直接连上去   协议很简单     Get   Post   就可以了Top

6 楼iceeajp(代理主教)回复于 2006-03-14 08:55:52 得分 0

还有更多的资料么?虽然已经有很有用的,不过想再参考多点,也让有同样疑惑的弟兄们多学一点东西Top

7 楼echomo123(无语)回复于 2006-03-14 16:49:13 得分 5

MARKTop

8 楼bohlee(我心澎湃)回复于 2006-03-14 21:01:48 得分 5

估计搂主是完美主义者Top

9 楼iceeajp(代理主教)回复于 2006-03-15 09:16:33 得分 0

楼上的猜对了,真厉害,你怎么知道的?Top

10 楼iceeajp(代理主教)回复于 2006-03-16 15:14:01 得分 0

等待回复中Top

11 楼LongLongAgoImBoy(ThereIsAMe)回复于 2006-03-16 16:04:29 得分 5

小心吃多了撑着啊,哈哈Top

12 楼jinxuliang(smielfox)回复于 2006-03-17 19:21:54 得分 20

正好我在看http隧道,给你copy一段:是重载了的,就是发送send  
  CString   Line;  
   
  Line.Format("CONNECT   %s:%d   HTTP/1.0",lpszHost,nPort);  
  (*this)<<Line;  
  Line.Format("host:   %s:%d",lpszHost,nPort);  
  (*this)<<Line;  
  Line.Empty();  
  (*this)<<Line;  
   
   
   
  (*this)>>Line;  
   
  int   i   =   Line.Find('   ');  
  if(i!=-1)  
  Line   =   Line.Mid(i+1);  
   
   
  if(Line.Left(3)!="200")  
  {  
   
   
  //   Sorry   Guys   Http   Proxy   Authentication   Not   Implemented   !!!  
  if(Line.Left(3)=="407")  
  {  
  AfxMessageBox("Sorry   Guys   Http   Proxy   Authentication   Not   Implemented   in   Demo!!!");  
  }  
   
   
  throw   new   CSocketException("Proxy   Connection   Denied",Line.Mid(4));  
  }  
   
   
  do  
  {  
  (*this)>>Line;  
  if(Line.IsEmpty())  
  break;  
  }while(true);  
  Top

13 楼iceeajp(代理主教)回复于 2006-04-03 10:15:36 得分 0

要现在结帖么?Top

14 楼ajn_sailing(飞鸟Andrew)回复于 2006-04-03 19:13:32 得分 5

wwTop

15 楼cctcop75(Delphi)回复于 2006-04-03 19:54:21 得分 20

通过Winsock基于HTTP协议实现HTTP客户应用程序  
   
  --   --首先我将创建一个帮助函数LogFile(),该函数把传递给它的字符串写到磁盘文件中。然后再创建本示例的核心函数--HttpClient()。在这个核心函数中,我将通过Winsock连接到HTTP服务器上(本例中我将使用计算机世界日报168.160.224.185)。当连接成功后,发送   Get命令到HTTP服务器去下载指定路径上(/99/tips/)的文件。通过帮助函数LogFile()把下载的数据记录到本地磁盘文件中。  
   
   
  charfname[MAXPATH];  
   
  voidLogFile(char*p)  
   
  {  
   
  FILE*fp=fopen(fname,"a+");  
   
  fprintf(fp,"%s\n",p);  
   
  fclose(fp);  
   
  }  
   
   
  BOOL   HttpClient(void)  
   
  {  
   
  WSADATAws;  
   
  SOCKETs;  
   
  struct   sockaddr_inaddr;  
   
   
  intiResult;  
   
  longlResult;  
   
  char   strSubAddr[100],strBuffer[100];  
   
   
  lResult=WSAStartup(0x0101,&ws);  
   
  s=socket(AF_INET,SOCK_STREAM,0);  
   
   
  addr.sin_family=AF_INET;  
   
  addr.sin_port=htons(80);  
   
  addr.sin_addr.s_addr=inet_addr("168.160.224.185");  
   
  iResult=connect(s,(structsockaddr*)&addr,sizeof(addr));  
   
  if(SOCKET_ERROR==iResult)  
   
  {  
   
  //连接失败  
   
  WSACleanup();  
   
  returnFALSE;  
   
  }  
   
  else{  
   
  //连接成功  
   
  strcpy(strSubAddr,"GET/99/tips/\r\n");  
   
  strcpy(fname,"index.htm");  
   
  iResult=send(s,strSubAddr,strlen(strSubAddr),0);  
   
   
  //下载文件  
   
  do{  
   
  strset(strBuffer,'');  
   
  iResult=recv(s,strBuffer,sizeof(strBuffer),0);  
   
  LogFile(strBuffer);  
   
  }while(iResult!=0);  
   
  }  
   
   
  WSACleanup();  
   
  returnTRUE;  
   
  }  
   
   
  三、测试  
   
  ----打开VisualC++5.0,用MFC创建基于对话框的工程Test,并在对话框上放置"Test"按钮,然后添加测试代码。  
   
   
  VoidCTestDlg::OnTest()  
   
  {  
   
  HttpClient();  
   
  }  
  Top

16 楼iceeajp(代理主教)回复于 2006-05-18 08:54:19 得分 0

太久没来了,忘记结帖了!  
  现在结了.UP的都有分哦!Top

相关问题

  • 用socket建立三重连接
  • 用socket建立http连接的一段实例程序,有点毛病,大家过来看看啊!!!
  • 关于在线程中建立Socket连接的问题!()
  • 200分求问j2me里如何建立socket连接?
  • 求源码:socket透过代理服务器建立连接
  • 同一台机器上socket建立连接的最大数???
  • 如何在代理的情况下建立socket连接?
  • 如何快速在局域网内建立 socket 连接?
  • 多线程建立Socket连接的问题
  • 怎样建立不同局域网的两台主机的Socket连接?

关键词

  • .net
  • c++
  • 函数
  • 连接
  • 文件
  • socket
  • 下载
  • strsubaddr
  • strbuffer
  • iresult

得分解答快速导航

  • 帖主:iceeajp
  • striking
  • laiyiling
  • gohappy_1999
  • wangjia184
  • echomo123
  • bohlee
  • LongLongAgoImBoy
  • jinxuliang
  • ajn_sailing
  • cctcop75

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo