96-可重用的TCP服务器

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()
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容