【发布时间】:2021-07-10 10:05:15
【问题描述】:
我想根据输入的数据从 Python 服务器获得响应。 如果我输入 UPPER,我想收到“大写”,LOWER - “小写”。 在我看来,我做的一切都很好,但它仍然不起作用它看起来像:
~#: telnet localhost 5005
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Available commands: UPPER, LOWER
UPPER
接下来什么也没有发生。
我的代码是:
#!/usr/bin/env python
import socket
TCP_IP = '127.0.0.1'
TCP_PORT = 5005
BUFFER_SIZE = 20 # Normally 1024, but we want fast response
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((TCP_IP, TCP_PORT))
s.listen(1)
conn, addr = s.accept()
print 'Connection address:', addr
conn.sendall('Available commands: UPPER, LOWER\n')
while 1:
data = conn.recv(BUFFER_SIZE)
if data == 'UPPER':
conn.send('Upper case')
elif data == 'LOWER':
conn.send('Lower case')
elif data == 'QUIT':
break
print "received data:", data
conn.close()
我的 python 版本是 2.7.13,我正在尝试在 Debian 上进行。
【问题讨论】:
-
“不起作用”是什么意思?您收到错误消息吗?你会得到意想不到的回应吗?一点反应都没有?
-
在输入数据后,例如 UPPER 没有任何反应 - 它只是在命令行中移动到一个新的空行。
-
有点跑题了,但是:Python2.7?你知道 Python2 已经在 2020 年初出现了 EOL - 一年多以前(它已经死了。EOL 已经宣布多年,但在 2020 年他们终于通过了它)。如果您是 Python 新手,请不要接触 Python2。改用闪亮的 Python3!