import socket


def main():
    # 1. 创建套接字
    tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

    # 2. 绑定本地信息
    tcp_server_socket.bind(('', 1234))

    # 3.让默认的套接字变为被动 listen
    tcp_server_socket.listen(128)

    while True:    # 为多个客户端服务
        # 4.等待客户的链接 accept
        new_client_socket, client_addr = tcp_server_socket.accept()

        while True:    # 为这个客户多次服务
            # 5.接受客户段发过来的请求
            recv_data = new_client_socket.recv(1024)
            print(recv_data, recv_data.decode('gbk'))#前面传递回来的是bytes类型, 后面进行解码

            if recv_data:
                # 6.回送一部分数据给客户端
                new_client_socket.send('It\'s ok'.encode('utf-8'))
            else:
                print('已经为这个客户端服务完毕')
                break

        # 7.关闭套接字
        new_client_socket.close()
    tcp_server_socket.close()

if __name__ == '__main__':
    main()