制作简单 TCP_CLIENT 的问题

伊南乌拉

问题是,当我运行此代码来制作简单客户端时,我会收到这样的错误。

import socket

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

# ➊ create a socket object
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# ➋ connect the client
client.connect((target_host,target_port))

# ➌ send some data
client.send("GET / HTTP/1.1\r\nHost: google.com\r\n\r\n")

# ➍ receive some data
response = client.recv(4096)

print response

我首先使用AF_INETSOCK_STREAM参数 ➊创建一个套接字对象AF_INET参数表示我们将使用标准 IPv4 地址或主机名,并SOCK_STREAM表示这将是一个 TCP 客户端。然后我们将客户端连接到服务器 ➋ 并向它发送一些数据 ➌。最后一步是接收一些数据并打印出响应。

当我运行 Traceback 时发生此错误(最近一次调用最后一次):

File "C:\Users\engin\Desktop\TCP_client.py", line 10, in <module>
client.send("GET / HTTP/1.1\r\nHost: google.com\r\n\r\n")  
TypeError: a bytes-like object is required, not 'str'

问题是什么?

丹尼尔

您正在尝试使用 Python3 运行 Python2-Code,由于打印语句,这首先会导致 SyntaxError。其次,您必须发送字节,而不是字符串:

client.send(b"GET / HTTP/1.1\r\nHost: google.com\r\n\r\n")

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章