zoukankan      html  css  js  c++  java
  • Python3学习之路~8.3 socket 服务端与客户端

    通过8.2的实例1-6,我们可以总结出来,socket的服务端和客户端的一般建立步骤:

    服务端

    步骤:1创建实例,2绑定,3监听,4阻塞,5发送&接收数据,6关闭。

    #Author:Zheng Na
    
    # 服务端
    
    import socket
    
    server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)  # 创建socket实例
    
    server.bind(('localhost', 6969))  # 绑定要监听的端口
    
    server.listen()  # 监听
    
    
    while True:  # 保证一个客户端断开后,服务端等待其他客户端连接,否则服务端随着客户端一同断开(linux系统执行成功,Pycharm中随着客户端断开而断开?)
        print("等待新的连接")
        conn, addr = server.accept()  # 阻塞,等待信息传送
        print("new conn: ", addr)
    
        while True:  # 保证客户端可向服务端多次发送数据
            data = conn.recv(1024)  # 接收数据
            if not data:  # 防止服务端因客户端关闭而进入死循环
                print("client is lost...")
                break
            print("recv from client: ", data)
    
            conn.send(data.upper())  # 发送数据
    
    server.close()  # 关闭

    客户端

    步骤:1创建实例,2连接,3发送&接收数据,4关闭。

    #Author:Zheng Na
    
    # 客户端
    
    import socket
    
    client = socket.socket()  # 创建socket实例
    
    client.connect(('localhost', 6969))  # 连接
    
    while True:
        msg = input(">>: ").strip()
        if len(msg) == 0: continue
    
        client.send(msg.encode("UTF-8"))  # 发送数据
    
        data = client.recv(1024)  # 接收数据
        print("recv from server: ", data)
    
    client.close()  # 关闭

    总结

  • 相关阅读:
    计算器第七次作业——总结
    计算器第六次作业——界面
    链表反转
    计算器第五次作业——更新
    求圆的面积
    计算器第四次作业——实现
    计算器第三次作业——完善
    计算器第三次作业——初步
    成长函数
    单个H扩展到多个H时,机器学习的保证
  • 原文地址:https://www.cnblogs.com/zhengna/p/10073082.html
Copyright © 2011-2022 走看看