制作简单的问题 TCP_CLIENT
Issue in making simple 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_INET
和 SOCK_STREAM
参数创建一个套接字对象 ➊。 AF_INET
参数表示我们将使用标准 IPv4 地址或 host_name,而 SOCK_STREAM
表示这将是一个 TCP 客户端。然后我们将客户端连接到服务器 ➋ 并向其发送一些数据 ➌。最后一步是接收一些数据并打印出响应。
这个错误发生在我运行
追溯(最近一次通话最后一次):
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'
有什么问题?
您正在尝试 运行 Python2-使用 Python3 编码,这将首先导致 SyntaxError,因为打印语句。其次,你必须发送字节,而不是字符串:
client.send(b"GET / HTTP/1.1\r\nHost: google.com\r\n\r\n")
问题是,当我 运行 这个用于制作简单客户端的代码时,我得到了这样的错误。
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_INET
和 SOCK_STREAM
参数创建一个套接字对象 ➊。 AF_INET
参数表示我们将使用标准 IPv4 地址或 host_name,而 SOCK_STREAM
表示这将是一个 TCP 客户端。然后我们将客户端连接到服务器 ➋ 并向其发送一些数据 ➌。最后一步是接收一些数据并打印出响应。
这个错误发生在我运行 追溯(最近一次通话最后一次):
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'
有什么问题?
您正在尝试 运行 Python2-使用 Python3 编码,这将首先导致 SyntaxError,因为打印语句。其次,你必须发送字节,而不是字符串:
client.send(b"GET / HTTP/1.1\r\nHost: google.com\r\n\r\n")