recv()函数在python中没有得到消息

时间:2012-09-06 00:27:03

标签: tcp-ip

我是使用python

的TCP / IP连接新手

我有这个简单的代码:

import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("www.google.com",80))
s.send("GET /\n")
while 1: 
 received = s.recv(1024) 
 if received: 
  print received

但是当我运行它时它会永远运行并且不会给我任何结果!!!

你能帮我吗?感谢

1 个答案:

答案 0 :(得分:1)

关注HTTP Protocol

s.send("GET /\n")

这不正确。您应该以适当的方式发送http数据。使用此

s.send("GET / HTTP/1.0\r\nHost: www.google.com\r\n\r\n");

实际上你要发送standard http request headers

GET / HTTP/1.0
Host: www.google.com

注意:正如David在评论中所说,您必须能够解码分块传输编码。因此,最好在标题中说明HTTP/1.0