从程序运行结果上看,你每输入一个字符,data就接收到了这个值,然后再回应你ok,你输入回车,data的值就是回车符(如果你是windows的话,在这应该是'\r\n'),当然会有ok回应。不能退出是因为无论你输入什么,data都是有值的,if not data 永远都是为真的,while True 的循环当然跳不出来了。你可以如下修改后再试试。 data = conn.recv(1024) b = data while b != '\r\n': b = conn.recv(1024) data += b reply = ' ok... ' + str(data)