python单线程下实现多个socket并发过程详解-创新互联

先看服务端的代码

创新互联专注于嵩县网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供嵩县营销型网站建设,嵩县网站制作、嵩县网页设计、嵩县网站官网定制、小程序制作服务,打造嵩县网络公司原创品牌,更为您提供嵩县网站排名全网营销落地服务。
import sys
# import socket
import time
import gevent
from gevent import socket
from gevent import monkey
monkey.patch_all()
#类似于python中的黑魔法,把很多模块的阻塞的变成非阻塞的,比如socket中的rece和send都变
# 为不阻塞了
 
 
def server(port):
  s = socket.socket()
  s.bind(("127.0.0.1",port))
  s.listen(2000)
  while True:
    cli,add = s.accept()
    gevent.spawn(handle_request,cli)
    #通过gevent的启动一个协程,把客户端的socket对象传进去
def handle_request(s):
  try:
    while True:
      data = s.recv(1024)
      print("收到的信息:",str(data,encoding="utf-8"))
      s.send(data)
      if not data:
        s.shutdown(socket.SHUT_WR)
        #把和客户端这个链接销毁
  except Exception as ex:
    print(ex)
  finally:
    s.close()
 
if __name__ == '__main__':
  server(8000)

新闻标题:python单线程下实现多个socket并发过程详解-创新互联
当前地址:http://bzwzjz.com/article/dsogij.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: H5网站制作 重庆企业网站建设 成都网站建设 成都网站建设 重庆手机网站建设 成都网站设计 成都定制网站建设 成都模版网站建设 重庆外贸网站建设 网站设计公司 重庆网站建设 营销网站建设 成都网站建设 重庆企业网站建设 网站建设开发 成都商城网站建设 移动网站建设 成都网站建设公司 手机网站建设套餐 网站建设 定制网站设计 重庆网站制作