Python服务器应答

Python服务器应答,python,server,tcp,debian,Python,Server,Tcp,Debian,我希望根据输入的数据从Python服务器获得响应。 如果我输入大写,我希望收到“大写”,小写-“小写”。 在我看来,我做的每件事都很好,但仍然不起作用。看起来: ~#: telnet localhost 5005 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. Available commands: UPPER, LOWER UPPER 接下来什么也没发生 我的代码是: #!/usr/bin/env

我希望根据输入的数据从Python服务器获得响应。 如果我输入大写,我希望收到“大写”,小写-“小写”。 在我看来,我做的每件事都很好,但仍然不起作用。看起来:

~#: 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上实现它。

您应该尝试更改行:data=conn.recv(BUFFER\u SIZE) to:data=conn.recv(缓冲区大小)。解码('UTF-8')


这没用,你也应该把你的客户端代码放在这里。这将使帮助您解决问题变得更容易。

das“不起作用”是什么意思?你收到错误信息了吗?你有没有收到意想不到的回复?根本没有响应?例如,在输入数据之后,什么都没有发生-它只是移动到命令行中的一个新的空行。有点脱离主题,但是:Python2.7?你知道Python2在2020年初就出现了EOL吗?一年多以前(它已经死了。EOL已经宣布了很多年,但在2020年他们最终通过了)。如果您是Python新手,请不要接触Python 2。使用闪亮的蟒蛇3代替!