Black Hat Python代码本上的套接字问题

时间:2018-12-06 18:14:08

标签: python python-3.x

我试图遵循本书的代码,但是是用python 2编写的。起初,我试图运行本书的代码:

import socket

target_host = "www.google.com"
target_port = 80

client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

client.connect((target_host,target_port))

msg = "Hi!"

"""MSG = msg.encode()"""
client.send(msg)

response = client.recv(4096)

print(response)

然后它遇到此错误:TypeError:需要一个类似字节的对象,而不是'str'。我用这样的编码进行了更正:

import socket

target_host = "www.google.com"
target_port = 80

client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

client.connect((target_host,target_port))

msg = "Hi!"
MSG = msg.encode()
client.send(MSG)

response = client.recv(4096)

print(response)

但是现在,该代码什么也不会打印。有什么问题吗?

1 个答案:

答案 0 :(得分:1)

这本书的代码发送为“ GET / HTTP / 1.1 \ Host:google.com \ r \ n \ r \ n”。 此代码意味着向Google发送获取请求,以便可以获取对您发送的请求的响应。 您的消息不是HTTP的请求,因此Google不会为您发送消息。

相关问题