如何C - windows socket读取文本文件内容

时间:2014-01-02 07:12:31

标签: winsock

我在使用C上的winsock读取文本文件内容时遇到问题,是否有人知道它应该如何工作?实际上,当我尝试从谷歌获取HTTP 标头时,但当我尝试使用 xampp 计算机时,

它只给了我400个不好的请求。

HTTP/1.1 400 Bad Request

char *message = "GET / HTTP/1.1\r\n\r\n";

好吧我通过winsock在我的localhost上收到400个错误请求的问题是我的HTTP请求,我只是将1.1更改为1.0 ..它有效!我现在想要的是打印文本文件的内容而不打印整个横幅?! :)

1 个答案:

答案 0 :(得分:0)

阅读RFC 2616,特别是第5.2和14.23节。 HTTP 1.1请求必需包含Host标头,HTTP 1.1服务器必需如果标头丢失且没有主机则发送400回复在请求行中指定。

char *message = "GET / HTTP/1.1\r\nHost: hostnamehere\r\n\r\n";

对于文本内容,您需要从套接字读取,直到遇到\r\n\r\n序列(终止响应头),然后处理标题,然后相应地读取文本内容。响应标头告诉您如何读取文本内容的原始字节以及何时停止读取(有关详细信息,请参阅RFC 2616第4.4节)。获得原始字节后,Content-Type标头会告诉您如何解释原始字节(数据类型,字符集等)。