我需要向tcp服务器发送用户名,密码和消息,以获得我正在处理的代码质询所需的输出。我收到了这套指示:
import socket
clientsocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
clientsocket.connect(('localhost', 10000))
clientsocket.send('USER: aliensignal')
clientsocket.send('PASS: unlockserver')
clientsocket.send('SEND: moonbase')
clientsocket.send('END')
data = clientsocket.recv(4096)
print(data)
我编写了一个python代码,完全按照它所说的那样:
############# DARKSTORE KEY SERVER SPEC ############################
Set username then password. Once set send name then end connection
and you access key will be sent.
USER: Tell server you will be sending username
PASS: Tell server you will be sending password
SEND: Tell server you will be sending data. (Must be authenticated)
END: Tell server to end transaction.
######################################################
但是我得到的输出结果是:
TypeError
无论我是否发送用户名和密码,它都会向我提供此输出。 有谁知道为什么会这样?
答案 0 :(得分:2)
你也在做网络探索。
您是否尝试阅读野外手册?
答案 1 :(得分:1)
首先,在USER,PASS,SEND和END之后你不需要冒号。
此外,挑战告诉您每次发送后都需要接收数据。
最后,您需要单独发送关键字和数据
所以:
import socket
clientsocket = ...
clientsocket.connect(...)
clientsocket.send(‘USER’)
print(clientsocket.recv(1024))
clientsocket.send(‘aliensignal’)
print(clientsocket.recv(1024))
#etc...