【问题标题】:Python Server ReplyPython 服务器回复
【发布时间】: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!

标签: python server tcp debian


【解决方案1】:

您应该尝试更改该行:data = conn.recv(BUFFER_SIZE) to: data = conn.recv(BUFFER_SIZE).decode('UTF-8')

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

【讨论】:

    猜你喜欢
    • 2015-06-25
    • 2014-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-20
    • 2023-02-15
    • 2016-02-16
    相关资源
    最近更新 更多