首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在SubDirectory中可以访问网站,但不能访问文本文件

在SubDirectory中可以访问网站,但不能访问文本文件
EN

Stack Overflow用户
提问于 2011-10-24 02:53:16
回答 1查看 365关注 0票数 1

我是套接字编程的新手,正在尝试读取嵌套在网站目录中的在线dat文件。我可以连接到主网站,但不能连接到它的任何子目录或其中一个目录中我试图访问的文本文件。

ie我可以连接到www.mainsite.com,但不能连接到www.mainsite.com/dir1/dir2/textfile.dat。我想使用recv或read读取文本文件,我不介意以不同的方式访问它,比如fdopen等。

我在windows7机器上用cygwin用gnu c写这篇文章。

为了保护隐私,我将使用匿名网站名称。下面是我使用的-thank代码的一部分:

代码语言:javascript
复制
  if(getaddrinfo("www.mainwebsite.com","80"    /*this works as it stands and fails if  I use  
                  , &hints, &res)!=0)       www.mainwebsite.com/subdir/textfile.dat  */
  .......
  .......
  /*create new socket*/
int newsocket = socket( res->ai_family, res->ai_socktype, 0);
.....
int newconnect = connect(newsocket, res->ai_addr, res->ai_addrlen)
.....
EN

回答 1

Stack Overflow用户

发布于 2011-10-24 03:01:46

制作一个web客户端比仅仅通过connect访问目录要复杂得多。一旦您连接到www.site.com,您将需要为您想要的文件write一个超文本传输协议GET请求,然后read响应(应该包括文件的内容)。

GET请求的文本将如下所示:

代码语言:javascript
复制
const char *req = "GET /subdir/textfile.dat HTTP/1.1\r\nHost: www.site.com\r\nUser-Agent: myprogram\r\n\r\n";
write(newsocket, req, strlen(req));

这是一个超文本传输协议(HTTP)请求。如果你真的想知道HTTP是如何工作的,还有很多东西需要学习。从维基百科的页面开始,然后从那里扩展到……

如果你对了解HTTP的工作原理不太感兴趣,你可以看看cURL,这是一个非常流行的库,它实现了HTTP,对于那些想要编写简单的客户端而不想进入难看的细节的人(像你)来说,生活变得更容易了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7868361

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档