python百例

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()
上一篇下一篇

猜你喜欢

热点阅读