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()  # 关闭

    总结

  • 相关阅读:
    dell N5010
    centos7 teamviewer
    E40笔记本无线网卡
    sqlite的bool字段
    System.data.sqlite安装
    关于AutoResetEvent 和ManualResetEvent
    实时刷新winform中的某一个控件上的文字
    C#中的静态构造函数
    apm的学习资料
    C# 版本和.NET 版本以及VS版本的对应关系
  • 原文地址:https://www.cnblogs.com/zhengna/p/10073082.html
Copyright © 2011-2022 走看看