在 python 上找不到停止简单 telnet 服务器的条件

Can' t find condition to stop simple telnet server on python

我想创建简单的服务器。但是不满足服务器关闭连接的条件

import socket
soc = socket.socket()
soc.bind(('', 33333))
soc.listen(2)
(conn, address) = soc.accept()
while True:
    data = conn.recv(1024)
    conn.sendall(data)
    if(data == 'stop'):
        conn.close()
        break

Ubuntu bash 在此代码的 运行 之后:

~$ telnet localhost 33333
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
stop
stop

变量data实际上等于'stop\r\n'

使用str.strip删除行结束符:

if data.strip() == 'stop':

编辑:考虑使用

获取data
data = ''
while not data.endswith('\n'):
    data += conn.recv(1024)

您可能还想阅读官方文档中的 Socket Programming HOWTO