TCP连接中客户端无法用enter终止输入?

在做python核心编程里的建立tcp服务器-客户端的一段代码,结果建立连接后客户端无法用enter结束输入,导致连接无效,不知道怎么解决?
服务器端代码:

from socket import *
from time import ctime

HOST = ''
PORT = 21567
BUFSIZ = 1024
ADDR = (HOST, PORT)

tcpSerSock = socket(AF_INET, SOCK_STREAM)   ##创建服务器套接字
tcpSerSock.bind(ADDR)                  ##套接字与地址绑定
tcpSerSock.listen(5)                  ##监听连接 设置最大连接数

while True:                           ##服务器无限循环
    print('waiting for connection……')  
    tcpCliSock, addr = tcpSerSock.accept()  #接受客户端连接
    print('……connected from:', addr)      

    while True:                            #通信循环
        data = tcpCliSock.recv(BUFSIZ).decode()     ##对话 
        if not data:
            break
        tcpCliSock.send('[%s] %s' % (ctime(), data)).encode()

    tcpCliSock.close()                  #关闭客户端套接字
tcpSerSock.close()                       #关闭服务器套接字

客户端代码:

from socket import *

HOST = 'localhost'
PORT = 21567
BUFSIZ = 1024
ADDR = (HOST, PORT)

tcpCliSock = socket(AF_INET, SOCK_STREAM)  #创建客户端套接字
tcpCliSock.connect(ADDR)         ##尝试连接服务器

while True:         ##通信循环
    data = input('> ')
    if not data:
        break
    tcpCliSock.send(data.encode())    #对话
    data = tcpCliSock.recv(BUFSIZ).decode()
    if not data:
        break
    print(data)

tcpCliSock.close()
#关闭客户端套接字

输出结果:

> q1
s
s
s
s
ss
阅读 2k
1 个回答

服务器端代码:

tcpCliSock.send(('[%s] %s' % (ctime(), data)).encode())

编码后再发送

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题