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

    总结

  • 相关阅读:
    在Arcscene绘制管线三维横断面(AE绘制三维点阵文字)
    MapControl控件AddLayer出现错误-引发类型为“System.Windows.Forms.AxHost+InvalidActiveXStateException”的异常
    c# 集合
    springmvc:第一个springmvc程序
    springmvc:简介
    VocabularyAccumulation
    Spring:整合Mybatis
    Spring:动态代理及Aop
    Spring:自动装配及注解
    Spring:Ioc(依赖注入)
  • 原文地址:https://www.cnblogs.com/zhengna/p/10073082.html
Copyright © 2011-2022 走看看