60

帖子

0

TA的资源

一粒金砂(初级)

21
 
上面我在模拟器的windows中创建了一个file.txt文件,
然后将buf中东西写入但打开file后,出现上面的权限受限等错误。

回复

76

帖子

0

TA的资源

一粒金砂(初级)

22
 
刚开始如下:
http://fmn001.xnimg.cn/fmn001/blog/20080826/17/13/A200055325770OXC.bmp
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

23
 

  1. WSADATA  wsaData;  
  2.         if(  WSAStartup(MAKEWORD(2,0),  &wsaData)  
  3.                 ||  LOBYTE(wsaData.wVersion)!=  2  )  
  4.                 return 0;        
  5.         ///创建SOCKET对象  
  6.         SOCKET  sock  =  socket(AF_INET,  SOCK_STREAM, IPPROTO_TCP  ); //  ppe->p_proto
  7.         if(sock  ==  INVALID_SOCKET)  
  8.                 return 0;        
  9.         ///根据主机名获得IP地址  
  10.         //hostent*  pHostEnt=gethostbyname("www.sina.com.cn");  
  11.         //if(pHostEnt==NULL){  
  12.         //        return 0;  
  13.         //}
  14.         int  nTime  =  10000;  
  15.         setsockopt(sock,  SOL_SOCKET,  SO_SNDTIMEO,  (char*)&nTime,  sizeof(nTime));  
  16.         setsockopt(sock,  SOL_SOCKET,  SO_RCVTIMEO,  (char*)&nTime,  sizeof(nTime));      
  17.         ///连接  
  18.         //struct  in_addr  ip_addr;  
  19.         //memcpy(&ip_addr, pHostEnt->h_addr_list[0],  4);///h_addr_list[0]里4个字节,每个字节8位      
  20.         struct  sockaddr_in  destaddr;  
  21.         memset((void  *)&destaddr,  0,  sizeof(destaddr));   
  22.         destaddr.sin_family  =  AF_INET;  
  23.         destaddr.sin_port  =  htons([color=#FF0000]8080[/color]);        //[color=#FF0000]此处是公司代理服务器的端口号[/color]
  24.         destaddr.sin_addr.s_addr = inet_addr("[color=#FF0000]16.105.253.251[/color]");//  =  ip_addr; [color=#FF0000]公司只能用代理服务器  [/color]

  25.         DWORD dwError;
  26.         if(  0  !=  connect(sock,  (struct  sockaddr*)&destaddr,  sizeof(destaddr))  )  
  27.         {
  28.                 dwError = GetLastError();
  29.                 return 0;  
  30.         }
  31.         ///格式化请求  
  32.         char  request[]  =  
  33.                 "GET http://sports.sina.com.cn/basketball/ HTTP/1.1\r\n"  
  34.                 // "GET  /book/2132/zip/gb.zip  HTTP/1.1\r\n"  
  35.                 // "Host:read.hjsm.net\r\n"  
  36.                 "Host:sports.sina.com.cn\r\n"
  37.                 "Accept:*/*\r\n"
  38.                 //"Referer:  http://sports.sina.com.cn/basketball.htm\r\n "  
  39.                 //"User-Agent:Mozilla/4.0  (compatible;  MSIE  5.00;  Windows  98)\r\n"  
  40.                 //// "Range:  bytes=0-\r\n"  
  41.                 //"Pragma:  no-cache\r\n"  
  42.                 //"Cache-Control:  no-cache\r\n"  
  43.                 //"Connection:Close\r\n\r\n";  
  44.          "Connection:Keep-Alive\r\n\r\n";  

  45.         ///发送请求  
  46.         if(  SOCKET_ERROR  ==  send(sock,  request,  strlen(request),  0)  )  
  47.                 return 0;  

  48.         //---------Response----------  
  49.         // HTTP/1.1  200  OK  
  50.         // Date:  Wed,  02  Feb  2005  08:42:09  GMT  
  51.         // Server:  Apache  
  52.         // Last-Modified:  Mon,  24  Jan  2005  13:17:07  GMT  
  53.         // ETag:  "37a9ef-7635b-459bac0"  
  54.         // Accept-Ranges:  bytes  
  55.         // Content-Length:  484187  
  56.         // Connection:  close  
  57.         // Content-Type:  application/zip  

  58.         // Transfer-Encoding:  chunked -  当有该行存在时,content会是分块传送,每块有一个头,格式:"[16进制块大小,string]\r\n"  

  59.         int  rcv_bytes  =  0;  
  60.         char  buf[2049]  =  {0,};  
  61.         //CFile  file(_T("\\Windows\\File.txt"),CFile::modeReadWrite | CFile::modeCreate);
  62.         while(1)  
  63.         {  
  64.                 rcv_bytes  =recv(sock,  buf,  2048,  0);  
  65.                 if(  rcv_bytes  <=  0  )           [color=#FF0000] //在这里断点看buf的内容[/color]
  66.                         break;      
  67.                 //ofs.write(buf,  rcv_bytes);
  68.                 //file.Write(buf,rcv_bytes);  
  69.                 //break;  
  70.         }  
  71.         //file.Close();      
  72.         closesocket(sock);      
  73.         WSACleanup();
复制代码


上面是我的测试代码,除了修改了一下代理服务器的ip外(公司代理不能外传),全部没有改变。
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

24
 
非常感谢你!!
我试一下。
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

25
 
下面这几句在我这边编译出错:
destaddr.sin_port = htons(8080);//此处是公司代理服务器的端口号
    destaddr.sin_addr.s_addr = inet_addr("16.105.253.251");//  =  ip_addr; 公司只能用代理服务器  
出现以下错误:
: error C2143: syntax error : missing ')' before '['
: error C2660: 'htons' : function does not take 0 parameters
: error C2065: 'color' : undeclared identifier
: error C2014: preprocessor command must start as first nonwhite space
: error C2143: syntax error : missing ']' before ';'
: error C2143: syntax error : missing ';' before '['
还有:这句
while(1)  
    {  
        rcv_bytes  =recv(sock,  buf,  2048,  0);  
        if(  rcv_bytes  <=  0  )            //在这里断点看buf的内容
            break;      
            }  
  }
: error C2014: preprocessor command must start as first nonwhite space
由于是新手,这段代码我不怎么理解?所以还麻烦你指点一下。非常感谢!!
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

26
 
(8080);        

[]中的是eeworld中设置字体颜色的,请去掉就行了。
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

27
 
谢谢你。我在试一下
在麻烦问一下怎样看上面的buf中的内容?
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

28
 
我建一个文件,将buf中内容写入其中,我觉得也因该可以查看buf中内容。
不知道这样可行?还请您指点一下,谢谢
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表