首页 > 其他分享 >协程下的socket并发

协程下的socket并发

时间:2022-11-22 17:47:43浏览次数:45  
标签:__ 协程 socket 并发 client msg conn addr

服务端

from gevent import monkey;monkey.patch_all()
from socket import *
import gevent

def server(server_ip,port):
    s=socket(AF_INET,SOCK_STREAM)
    s.setsockopt(SOL_SOCKET,SO_REUSEADDR,1)
    s.bind((server_ip,port))
    s.listen(5)
    while True:
        conn,addr=s.accept()
        # 生成一个协程
        gevent.spawn(talk,conn,addr)

def talk(conn,addr):
    try:
        while True:
            res=conn.recv(1024)
            print('client %s:%s msg: %s' %(addr[0],addr[1],res))
            conn.send(res.upper())
    except Exception as e:
        print(e)
    finally:
        conn.close()

if __name__ == '__main__':
    server('127.0.0.1',8080)

客户端

from socket import *

client=socket(AF_INET,SOCK_STREAM)
client.connect(('127.0.0.1',8080))


while True:
    msg=input('>>: ').strip()
    if not msg:continue

    client.send(msg.encode('utf-8'))
    msg=client.recv(1024)
    print(msg.decode('utf-8'))


标签:__,协程,socket,并发,client,msg,conn,addr
From: https://www.cnblogs.com/chunyouqudongwuyuan/p/16915897.html

相关文章

  • 【网络编程】Unity中使用Socket编程
    基本介绍名词解释Socket:网络连接的一端被称为socket。一个socket包含以下五个元素:使用的协议、本机IP、本地端口、远程IP、远程端口。IP地址:每台电脑都有一个自己的IP地址。......
  • 协程- gevent模块
    协程1.什么是协助:在单线程下实现并发效果2.协程的原理:通过代码监听IO操作一旦遇到IO操作就立刻切换下一个程序让cpu一直在工作这样就可以一直占用CPU的效率......
  • 《Go 语言并发之道》读书笔记(四)
    今天这篇笔记我们记录sync包下面的Cond,Once和PoolCondcond就是条件,当条件不满足的时候等待Wait(),条件满足后,继续执行。通过Signal()和Broadcast()来通知wait结束,继续执......
  • websocket html网页
    <html><body>Welcome<br/><inputid="text"type="text"/><buttononclick="send()">Send</button><buttononclick="closeWebSocket()">Close</bu......
  • 并发、进程、线程
    并发并发:一个程序同时执行多个独立任务。并发假象:单CPU,上下文切换;多CPU,真正并行功能:提高性能。进程进程:可执行程序运行起来即创建一个进程线程线程:代码的执行通路,每个进程......
  • 用C++写一遍linux socket通信过程
    要想深刻理解一些技术的底层,我还是觉得非用用c/c++写一遍的比较好。这其中的原因相信懂的人都懂。回忆一下上学时候在c语言课堂上的激动劲,如今感觉对c的理解真的都是那时候......
  • php-socket
    网络中是如何通信数据传输?ip+端口+协议实现网络进程之间的通信,几乎所有的应用程序都是采用socket,“一切皆socket”。HTTPTCPSOCKET区别Http协议:对应于应用层。Http协......
  • Java工具库Guava并发相关工具类的使用示例
    场景Java核心工具库Guava介绍以及Optional和Preconditions使用进行非空和数据校验:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/127683387Java中Executo......
  • 线程、GIL、协程
    1.多进程实现TCP服务端并发1.之前我们学习了一个服务端对应一个客户端的操作,但是我们无法实现一个服务端对应多个客户端的操作。因此我们需要在pycharm的右上角点击倒三......
  • 多进程并发,互斥锁,创建线程,线程多种方法,GIL全局解释器锁,进程线程池,协程
    目录多进程并发,互斥锁,创建线程,线程多种方法,GIL全局解释器锁,进程线程池,协程今日内容概要今日内容详细多进程实现TCP服务端并发互斥锁代码实操线程理论创建线程的两种方式线......