用for循环执行多用户访问

SEVER

import socket
sk1 = socket.socket()
sk1.bind(('127.0.0.1', 888))
sk1.listen()
import select
ipt = [sk1, ]
output = []
message_dic={}
eer=[]
while True:r_list, w_list, e_list = select.select(ipt, output, eer, 1)print('正在监听的sk对象 %s' % len(ipt))print(r_list)# for con in w_list:# con.sendall(bytes('hey', encoding='utf-8'))# output.remove(con)for sk_con in r_list:if sk_con == sk1:# 表示新客户来con, addr = sk_con.accept()ipt.append(con)message_dic[con]=[]else:# 老客户发消息try:data_bytes = sk_con.recv(1024)# data_str = str(data_bytes, encoding='utf-8')# sk.sendall(bytes(data_str + 'hao', encoding='utf-8'))except ConnectionResetError:eer.append(sk_con)else:# 用户正常发消息data_str = str(data_bytes, encoding='utf-8')message_dic[sk_con].append(data_str)output.append(sk_con)# ipt.remove(sk)# con.sendall(bytes('hi',encoding='utf-8'))# for sk in e_list:#     ipt.remove(sk)for cont in w_list:rec_str=message_dic[cont][0]cont.sendall(bytes(rec_str+'hhhhh',encoding='utf-8'))del message_dic[cont][0]output.remove(cont)for sk in e_list:ipt.remove(sk)

sk1=socket.socket()
sk1.bind(('127.0.0.1',888))
sk1.listen()import select
ipt=[sk1,]
output=[]
while True:r_list, w_list, e_list = select.select(ipt, output, ipt, 1)print('正在监听的sk对象 %s' % len(ipt))print(r_list)for con in w_list:con.sendall(bytes('hey', encoding='utf-8'))output.remove(con)for sk in r_list:if sk==sk1:# 表示新客户来了con,addr=sk.accept()ipt.append(con)else:# 老客户发消息try:data_bytes=sk.recv(1024)data_str=str(data_bytes,encoding='utf-8')sk.sendall(bytes(data_str+'hao',encoding='utf-8'))except ConnectionResetError:output.append(sk)# ipt.remove(sk)# con.sendall(bytes('hi',encoding='utf-8'))# for sk in e_list:#     ipt.remove(sk)

转载于:https://www.cnblogs.com/ezway/p/6725589.html

python io多路复用相关推荐

  1. python -- IO多路复用

    python之路--IO模型 阅读目录 一 IO模型介绍 二 阻塞IO(blocking IO) 三 非阻塞IO(non-blocking IO) 四 多路复用IO(IO multiplexing) ...

  2. python io多路复用_python实现IO多路复用 --- selector

    IO多路复用 O多路复用技术是使用一个可以同时监视多个IO阻塞的中间人去监视这些不同的IO对象,这些被监视的任何一个或多个IO对象有消息返回,都将会触发这个中间人将这些有消息IO对象返回,以供获取他们 ...

  3. python io多路复用_Python之IO多路复用

    一.IO模型介绍 ​ 同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这 ...

  4. python io多路复用_【python】-- IO多路复用(select、poll、epoll)介绍及实现

    IO多路复用(select.poll.epoll)介绍及select.epoll的实现 IO多路复用中包括 select.pool.epoll,这些都属于同步,还不属于异步 一.IO多路复用介绍 1. ...

  5. python io多路复用框架_python之IO多路复用

    同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别? 不同的人在不同的上下文下给出的答案是不同的.所以先限定一下本文的上下文. 本文讨论的背景是Linux环境下的network IO. ...

  6. php io select,Python IO多路复用之——select方案服务端和客户端代码【python源码详解】...

    准备文件: IO.py  服务端代码 tcp_c.py 客户端代码 IO.py 代码: from select import * #引入 select 模块 from socket import * ...

  7. python IO多路复用源码

    # #非阻塞 # from socket import * # from time import sleep,ctime # s=socket() # s.bind(('0.0.0.0',7895)) ...

  8. Python网络编程:IO多路复用

    io多路复用:可以监听多个文件描述符(socket对象)(文件句柄),一旦文件句柄出现变化,即可感知. 1 sk1 = socket.socket() 2 sk1.bind(('127.0.0.1', ...

  9. IO多路复用select/poll/epoll详解以及在Python中的应用

    IO multiplexing(IO多路复用) IO多路复用,有些地方称之为event driven IO(事件驱动IO). 它的好处在于单个进程可以处理多个网络IO请求.select/epoll这两 ...

最新文章

  1. FastAI 课程学习笔记 lesson 1:宠物图片分类
  2. 前端开发者必备的Nginx知识
  3. php curl 下载网页,php 通过cURL函数抓取网页、下载网页的简单示例
  4. 干掉Navicat:正版 MySQL 官方客户端真香!
  5. Linux shell只读变量
  6. 规则引擎:大厂营销系统资格设计全解
  7. MySQL的行转列、列转行、连接字符串 concat、concat_ws、group_concat函数用法
  8. 【渝粤题库】广东开放大学 基础写作 形成性考核
  9. huffman算法c语言实验报告,huffman二叉树实验报告--数据结构(c语言).doc
  10. Linux 定时任务 定时备份mysql数据
  11. c++去除图片上的文字_图片文字修改去除方法
  12. 嘿,我这里有一个 Survey!
  13. 定义CPU阀值(转)
  14. leetcode Candy
  15. 如何成为一名数据分析师?
  16. linux下使用top和pmap命令查看系统运行状态和进程运行状态
  17. Unity2021 Inventory(背包)系统学习记录
  18. 千峰教育——网络管理
  19. android usb 默认mtp,usb修改为默认MTP模式
  20. 逻辑回归与线性回归算法梳理

热门文章

  1. Unable to instantiate Action错误的解决
  2. 游族马寅龙:常见信息安全风险及应对方案
  3. 西门子PLC编程软件,最新版本是TIA STEP7 V16,功能更加强大
  4. php做到聊天发图片,网页聊天框发送表情图片实现方法
  5. Qt动态翻译不生效!
  6. 梦最开始的地方,《一周学会Linux实战》韩顺平---视频笔记。到shell之前
  7. 海康威视视频对接--rtsp测试地址--vlc测试地址
  8. C语言for循环能不能定义,关于for循环的格式
  9. ABP继承自AbpController后路由无效
  10. bose蓝牙音箱使用说明_性价比甄选 推荐这5款超值得入手的蓝牙音箱