• 基于ZYNQ-7000的AI加速器设计之Python网络编程(TCP协议)


    1.Python网络编程简介

    Python提供了两个级别的网络访问服务,一个是低级别的网络服务,支持基本的Socket,Socket即为套接字,应用程序可以通过套接字向网络发出请求或者应答网络请求,使各计算机之间或者一台计算机的各个进程间可以通讯。另一个就是高级别的网络服务模块SocketServer,在进行网络服务器的开发时有很多便利。

    2.Python网络编程基本步骤

    服务器端:

    • 创建socket对象
    • 绑定地址
    • 设置最大连接数,开始TCP监听
    • 被动接收客户端的连接,等待连接的到来
    • 发送或接收数据
    • 关闭套接字

    客户端:

    • 创建socket对象
    • 连接指定地址的服务器
    • 接收或发送数据
    • 关闭套接字

    3.Python简单编程实现及演示

    (1)服务器端:

    针对节2提出的服务器端执行步骤,进行了简单编程,代码如下:

    # 导入 socket模块
    import socket
    # 创建 socket 对象
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
    # 获取本地主机名
    host = socket.gethostname()
    port = 1234
    # 绑定端口号
    s.bind((host, port))
    # 设置最大连接数为5,超过后排队
    s.listen(5)
    while True:
        # 建立客户端连接
        clientsocket,addr = s.accept()      
        print("连接地址: %s" % str(addr))
        msg='Hello whustxsk'+ "
    "
        clientsocket.send(msg.encode('utf-8'))
        clientsocket.close()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    网络调试助手工作在TCP Client模式,运行程序,并启动网络调试助手连接,网络调试助手接收到服务器端发送的数据,结果如下:

    服务器端接收到网络调试助手客户端返回的数据,结果如下:

    (2) 客户端

    针对节2提出的客户端编程流程,进行了Python编程,代码如下:

    # 导入 socket模块
    import socket
    # 创建 socket 对象
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
    # 获取本地主机名
    host = socket.gethostname() 
    # 设置端口号
    port = 1234
    # 连接服务,指定主机和端口
    s.connect((host, port))
    # 接收小于 256 字节的数据
    msg = s.recv(256)
    s.close()
    print (msg.decode('utf-8'))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    网络调试助手工作在TCP Sever模式,运行程序,并启动网络调试助手连接,网络调试助手发送“whustxsk hello”数据,客户端接收到,结果如下

  • 相关阅读:
    Kafak简单使用
    U-Net 模型改进和应用场景研究性综述
    【Android】【基础】
    Springboot-redis学习第一天
    linux依赖关系和简单的进度条实现
    如何优雅的整合定时批量任务(荣耀典藏版)
    Cesium 三维模型使用 blender 调整位置、坐标轴、比例等
    Mysql JSON对象和JSON数组查询
    Java项目防止SQL注入的四种方案
    技术前沿|Spark 3.3.0 中 DS V2 Push-down 的重构与新特性
  • 原文地址:https://blog.csdn.net/m0_54850467/article/details/126565579