在做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
服务器端代码:
编码后再发送