我是套接字编程的新手,正在尝试读取嵌套在网站目录中的在线dat文件。我可以连接到主网站,但不能连接到它的任何子目录或其中一个目录中我试图访问的文本文件。
ie我可以连接到www.mainsite.com,但不能连接到www.mainsite.com/dir1/dir2/textfile.dat。我想使用recv或read读取文本文件,我不介意以不同的方式访问它,比如fdopen等。
我在windows7机器上用cygwin用gnu c写这篇文章。
为了保护隐私,我将使用匿名网站名称。下面是我使用的-thank代码的一部分:
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)
.....发布于 2011-10-24 03:01:46
制作一个web客户端比仅仅通过connect访问目录要复杂得多。一旦您连接到www.site.com,您将需要为您想要的文件write一个超文本传输协议GET请求,然后read响应(应该包括文件的内容)。
GET请求的文本将如下所示:
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,对于那些想要编写简单的客户端而不想进入难看的细节的人(像你)来说,生活变得更容易了。
https://stackoverflow.com/questions/7868361
复制相似问题