У вас правильная идея, но вы не отправляете HTTP-запрос. Отправить:
GET / HTTP/1.1\r\nHost: <hostname\r\n\r\n
Это следует формату
[METHOD] [PATH] HTTP/1.1 [CRLF]
Host: [HOSTNAME] [CRLF]
OTHER: HEADERS [CRLF]
[CRLF]
Вы должны получить ответ следующего формата: заголовок, пустая строка и данные. Подробнее о протоколе HTTP читайте.
РЕДАКТИРОВАТЬ Возможно, это поможет понять синтаксис HTTP-запроса, чтобы начать. Это довольно просто и просто хорошо знать вообще. Откройте терминал и используйте netcat
(предпочтительно) или telnet
. netcat google.com 80
или telnet google.com 80
. Тип:
GET / HTTP/1.1[ENTER]
Host: google.com[ENTER]
[ENTER]
Я получаю ответ (после второго возврата):
HTTP/1.1 301 Moved Permanently
Location: http://www.google.com/
Content-Type: text/html; charset=UTF-8
Date: Thu, 09 Dec 2010 00:03:39 GMT
Expires: Sat, 08 Jan 2011 00:03:39 GMT
Cache-Control: public, max-age=2592000
Server: gws
Content-Length: 219
X-XSS-Protection: 1; mode=block
<HTML&<HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="http://www.google.com/">here</A>.
</BODY></HTML>
Как только вы почувствуете синтаксис запроса, просто запишите его в сокет, затем читайте строки, пока сервер не закроется, как вы делаете.