zoukankan      html  css  js  c++  java
  • 各个逻辑都不懂

    协程  实现 socket 并发异步功能

    socket.py

    # 事情不想好 再做  真不如不做
    from gevent import monkey;monkey.patch_all()
    import socket
    import gevent
    sk = socket.socket()
    sk.bind(('127.0.0.1',9000))
    sk.listen()
    def fuc(conn):
        while 1:                        #这边的while和client的while是对应的
                                        #client子线程里有while不加守护线程的话无法退出
            msg = conn.recv(1024).decode('utf-8')
            conn.send(msg.upper().encode('utf-8'))      #(xxxx.xx()).encode() 这里写错了
            # print(msg)
    while 1:                        # 一直得要连接  
        conn, _ = sk.accept()       #这里没每次接受 放出去了
        gevent.spawn(fuc,conn)      #这里没传参conn 上面没有
        # g_l = []
    # g.join()              #可以识别的  不用join阻塞  就是说

    client.py  以及很多 client.py 

    # from gevent import monkey;monkey.patch_all()  #这里不用
    import socket
    import gevent
    from threading import Thread
    
    # sk = socket.socket()
    # sk.connect(('127.0.0.1', 9000))   # 把连接放外面传输很不稳定
    def f(i):
        sk = socket.socket()
        sk.connect(('127.0.0.1', 9000))
        while 1:
            sk.send(('bye%s' % i).encode('utf-8'))
            print(sk.recv(1024))
    # g_l = []
    for i in range(2):      # 500个 while 如果子线程是while的话 不退出 没while则500个数退出
    #     g = gevent.spawn(f)
    #     g_l.append(g)
    # gevent.joinall(g_l)
        Thread(target=f,args=(i,)).start()       #不是开协程  是开线程  用start

     10行代码:(你记得的才叫代码)

    代码
    while 1 (对应)不退
    conn 1 (参数)
    打开500个线程 1
    sk.accept1
    sk= scoket.socket()1
    sk.connent1在函数里
    monke1可以识别sk
    不用join1
    join 什么情况?保证time运行完 gevent 不用1
    gevent 也必须join怎么回事?

    https://gitee.com/python_stack_20/teaching_plan/issues/IVM5B

    https://www.cnblogs.com/Eva-J/articles/10738165.html

  • 相关阅读:
    集群间如何实现session共享
    详解PHP如何实现单点登录
    jsonp原理详解
    跨站请求CSRF攻击
    防止SQL注入
    在springboot中使用h2数据库
    Datalab实验
    飞步无人驾驶2018届校园招聘在线笔试A轮
    HDU6030 Happy Necklace
    HDU5950 Recursive sequence
  • 原文地址:https://www.cnblogs.com/Doner/p/10741832.html
Copyright © 2011-2022 走看看