能'找到条件停止python上的简单telnet服务器

时间:2015-11-04 16:21:54

标签: python sockets server port telnet

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

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

1 个答案:

答案 0 :(得分:0)

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

使用str.strip删除行终止符:

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

编辑:考虑使用以下方式获取data

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

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