我想创建简单的服务器。但是服务器关闭连接的条件并不令人满意。
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
答案 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。