1

我是使用 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

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

请你帮助我好吗。谢谢

4

1 回答 1

1

遵循HTTP 协议

s.send("GET /\n")

这是不正确的。您应该以正确的方式发送 http 数据。用这个

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

事实上,您要发送标准的 http 请求标头

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

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

于 2012-09-06T00:33:32.730 回答