96-可重用的TCP服务器
2018-08-04 本文已影响4人
凯茜的老爸
在95-socket基础:TCP服务器流程中,TCP服务器只能一个客户端连接,客户端也只能发送一条消息。本例允许客户端发送多条消息,输入end结束。客户端退出后,服务器程序不再退出,可以为下一个客户端提供服务:
import socket
host = ''
port = 12345
addr = (host, port)
s = socket.socket()
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind(addr)
s.listen(1)
while True:
cli_sock, cli_addr = s.accept()
print('Client connect from:', cli_addr)
while True:
data = cli_sock.recv(1024)
if data.strip() == b'end':
break
print(data.decode('utf8')) # bytes类型转为string类型
data = input('> ') + '\r\n' # 获得的是string类型
cli_sock.send(data.encode('utf8')) # 转成bytes类型发送
cli_sock.close()
s.close()