服务器端:gevent_server.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import sys
import socket
import time
import gevent
from gevent import socket, monkey
monkey.patch_all()
def server(port):
    = socket.socket()
    s.bind(('0.0.0.0', port))
    s.listen(500)
    while True:
        cli, addr = s.accept()
        gevent.spawn(handle_request, cli)#启动一个协程
def handle_request(conn):
    try:
        while True:
            data = conn.recv(1024)
            print("recv:", data)
            conn.send(data)
            if not data:
                conn.shutdown(socket.SHUT_WR)
    except Exception as  ex:
        print(ex)
    finally:
        conn.close()
if __name__ == '__main__':
        server(8001)
 客户端:socket_client.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import socket
HOST = 'localhost'  # The remote host
PORT = 8001  # The same port as used by the server
= socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
while True:
    msg = bytes(input(">>:"), encoding="utf8")
    s.sendall(msg)
    data = s.recv(1024)
    #
    print('Received', data)
s.close()

import sys
import socket
import time
import gevent
from gevent import socket, monkey
monkey.patch_all()
def server(port):
    = socket.socket()
    s.bind(('0.0.0.0', port))
    s.listen(500)
    while True:
        cli, addr = s.accept()
        gevent.spawn(handle_request, cli)#启动一个协程
def handle_request(conn):
    try:
        while True:
            data = conn.recv(1024)
            print("recv:", data)
            conn.send(data)
            if not data:
                conn.shutdown(socket.SHUT_WR)
    except Exception as  ex:
        print(ex)
    finally:
        conn.close()
if __name__ == '__main__':
        server(8001)

转载于:https://www.cnblogs.com/394510636-ff/p/9282152.html

python-gevent模块实现socket大并发相关推荐

  1. python gevent模块 下载_Python协程阻塞IO非阻塞IO同步IO异步IO

    Python-协程-阻塞IO-非阻塞IO-同步IO-异步IO 一.协程 协程又称为微线程 CPU 是无法识别协程的,只能识别是线程,协程是由开发人员自己控制的.协程可以在单线程下实现并发的效果(实际计 ...

  2. python线程池模块_python并发编程之进程池,线程池,协程(Python标准模块--concurrent.futures(并发未来))...

    需要注意一下 不能无限的开进程,不能无限的开线程 最常用的就是开进程池,开线程池.其中回调函数非常重要 回调函数其实可以作为一种编程思想,谁好了谁就去掉 只要你用并发,就会有锁的问题,但是你不能一直去 ...

  3. python gevent模块 下载_Python中的多任务,并行,并发,多线程,多进程,协程区别...

    多任务 CPU承担了所有的计算任务.一个CPU在一个时间切片里只能运行一个程序.当我们想同时运行多于一个程序的时候,就是多任务,例如同时运行微信,QQ,浏览器等等.多任务的目的是提升程序的执行效率,更 ...

  4. python gevent模块 下载_【python安全攻防】包、模块、类、对象

    终于又到了一周一度的整理博客的时间了,博主平时课余时间看书,周末统一整理,坚持周更真是爱了爱了 - 今天要说的是python面向对象这一部分的内容,今天这是基础篇的第二篇,也是最后一篇. 说来基础篇还 ...

  5. 学习笔记(35):Python网络编程并发编程-协程(yield,greenlet,gevent模块)

    立即学习:https://edu.csdn.net/course/play/24458/296457?utm_source=blogtoedu 协程(yield,greenlet,gevent) 1. ...

  6. Python Gevent – 高性能的 Python 并发框架

    From:http://www.xuebuyuan.com/1604603.html Gevent 指南(英文):http://sdiehl.github.io/gevent-tutorial Gev ...

  7. python gevent async_详解python之协程gevent模块

    进程.线程.协程区分 我们通常所说的协程Coroutine其实是corporate routine的缩写,直接翻译为协同的例程,一般我们都简称为协程. 在linux系统中,线程就是轻量级的进程,而我们 ...

  8. python Gevent – 高性能的Python并发框架

    话说gevent也没个logo啥的,于是就摆了这张图= =|||,首先这是一种叫做greenlet的鸟,而在python里,按照官方解释greenlet是轻量级的并行编程,而gevent呢,就是利用g ...

  9. 单线程实现并发——协程,gevent模块

    一 并发的本质 1 切换 2 保存状态 二 协程的概念 协程,又称微线程,纤程.英文名Coroutine.单线程下实现并发,用户从应用程序级别控制单线程下任务的切换,注意一定是遇到I/O才切. 协程的 ...

最新文章

  1. java三级考试_java web 学习 --第五天(Java三级考试)
  2. 1-runtime的Method,IMP,Property,ivar
  3. 活动报名 | “认知神经科学”助力人工智能突围的方法路径
  4. async spring 默认线程池_springboot-@Async默认线程池导致OOM问题
  5. centos7源码安装mysql报错_centos7.3源码安装mysql
  6. 【学习笔记】月末操作-GR/IR重组
  7. SSM+Druid实现动态多数据源切换(已实践)
  8. 2021年三大顶会时间序列论文代码整理
  9. Dubbo源码分析系列-Dubbo的动态编译原理
  10. script链接标签前置无法读取的解决
  11. mysql 中间表的好处_MySql 使用中间表来提高统计查询速度
  12. Android:RGB颜色对照表
  13. AE的破解安装+连接到Media Encoder+Premiere的安装
  14. python截取视频图像_python视频按帧截取图片工具
  15. Activity任务栈
  16. 论算法人的语言表达能力
  17. 机器学习实战中的心得体会
  18. Python11 镜像
  19. 自己动手iPad贴膜小记
  20. 秒杀(小米网抢购系统开发实践--“米粉节”背后的故事)

热门文章

  1. 社会保险的多层次包括哪些?
  2. 手机越“清理”越卡顿,清理软件“坑”过你吗?
  3. 写作新手想少走弯路,尽快赚到钱,必须要知道的
  4. 富人有面子,穷人没面子的真相
  5. 经济情况越不好越要做好这三点
  6. 男朋友花3000元买一块电脑显卡,他是怎么想的?
  7. 互联网公司大厂中厂小厂分别指哪些公司?
  8. Seeing this, many people find it incredible
  9. sql azure 语法_如何将SQL数据迁移到Azure Cosmos DB
  10. azure机器学习_如何在Azure机器学习中使用JSON数据