socket + select 完成伪并发操作的实例


Posted in Python onAugust 15, 2017

实例如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import socket
#创建一个socket对象
sk1 = socket.socket()
#绑定ip和端口
sk1.bind(('127.0.0.1', 8001))
#监听
sk1.listen()
#定义一个字典存放客户端发送的信息
message_dict = {}
#inputs用于存放socket对象
inputs = [sk1]
#哪一个客户端发送信息就把哪一个客户端的存放进output
output = []
import select
while True:
  r_list, w_list, e_list = select.select(inputs, output, inputs, 1)
  print('正在监听的socket%d' %len(inputs))
  print(r_list)
  for sk_or_conn in r_list:
    if sk_or_conn == sk1:
      conn, address = sk_or_conn.accept()
      inputs.append(conn)
      message_dict[conn] = []
    else:
      try:
        data_bytes = sk_or_conn.recv(1024)
      except Exception as ex:
        inputs.remove(sk_or_conn)
      else:
        data_str = str(data_bytes, encoding='utf-8')
        message_dict[sk_or_conn].append(data_str)
        output.append(sk_or_conn)
  for conn in w_list:
    data_message = message_dict[sk_or_conn][0]
    del message_dict[sk_or_conn][0]
    conn.sendall(bytes(data_message + '好',encoding='utf-8'))
    output.remove(conn)

以上这篇socket + select 完成伪并发操作的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中threading模块join函数用法实例分析
Jun 04 Python
Python爬虫代理IP池实现方法
Jan 05 Python
Python变量和字符串详解
Apr 29 Python
Python 多核并行计算的示例代码
Nov 07 Python
python不换行之end=与逗号的意思及用途
Nov 21 Python
解决python测试opencv时imread导致的错误问题
Jan 26 Python
pytorch中如何使用DataLoader对数据集进行批处理的方法
Aug 06 Python
python获取指定日期范围内的每一天,每个月,每季度的方法
Aug 08 Python
使用OpenCV实现仿射变换—缩放功能
Aug 29 Python
用于ETL的Python数据转换工具详解
Jul 21 Python
python wsgiref源码解析
Feb 06 Python
python实现批量提取指定文件夹下同类型文件
Apr 05 Python
Python日期的加减等操作的示例
Aug 15 #Python
Python在信息学竞赛中的运用及Python的基本用法(详解)
Aug 15 #Python
Python对列表中的各项进行关联详解
Aug 15 #Python
浅析Python中的赋值和深浅拷贝
Aug 15 #Python
Python单例模式的两种实现方法
Aug 14 #Python
Python基于Matplotlib库简单绘制折线图的方法示例
Aug 14 #Python
python使用super()出现错误解决办法
Aug 14 #Python
You might like
php中并发读写文件冲突的解决方案
2013/10/25 PHP
php json相关函数用法示例
2017/03/28 PHP
BOOM vs RR BO5 第一场 2.14
2021/03/10 DOTA
ie focus bug 解决方法
2009/09/03 Javascript
层序遍历在ExtJs的TreePanel中的应用
2009/10/16 Javascript
jquery的trigger和triggerHandler的区别示例介绍
2014/04/20 Javascript
.NET微信公众号开发之创建自定义菜单
2015/07/16 Javascript
jquery实现带渐变淡入淡出并向右依次展开的多级菜单效果实例
2015/08/22 Javascript
jQuery使用$.ajax进行即时验证的方法
2015/12/08 Javascript
JS中递归函数
2016/06/17 Javascript
对javascript继承的理解
2016/10/11 Javascript
将form表单通过ajax实现无刷新提交的简单实例
2016/10/12 Javascript
整理关于Bootstrap列表组的慕课笔记
2017/03/29 Javascript
js实现倒计时关键代码
2017/05/05 Javascript
js 奇葩技巧之隐藏代码
2017/08/11 Javascript
vue router自动判断左右翻页转场动画效果
2017/10/10 Javascript
jquery应用实例分享_实现手风琴特效
2018/02/01 jQuery
vue编译打包本地查看index文件的方法
2018/02/23 Javascript
JS与CSS3实现图片响应鼠标移动放大效果示例
2018/05/04 Javascript
使用 node.js 模仿 Apache 小部分功能
2019/07/07 Javascript
Python正则表达式使用经典实例
2016/06/21 Python
Python编程实现两个文件夹里文件的对比功能示例【包含内容的对比】
2017/06/20 Python
Python实现判断一个字符串是否包含子串的方法总结
2017/11/21 Python
Python爬取当当、京东、亚马逊图书信息代码实例
2017/12/09 Python
spark dataframe 将一列展开,把该列所有值都变成新列的方法
2019/01/29 Python
Python Request爬取seo.chinaz.com百度权重网站的查询结果过程解析
2019/08/13 Python
下载官网python并安装的步骤详解
2019/10/12 Python
python实现时间序列自相关图(acf)、偏自相关图(pacf)教程
2020/06/03 Python
python基于selenium爬取斗鱼弹幕
2021/02/20 Python
英国知名的皮手套品牌:Dents
2016/11/13 全球购物
农业资源与环境专业自荐信范文
2013/12/30 职场文书
物流专业大学生职业生涯规划书范文
2014/01/15 职场文书
大学生在校学习的自我评价
2014/02/18 职场文书
村抢险救灾方案
2014/05/09 职场文书
公司总经理岗位职责
2015/04/01 职场文书
办公用品质量保证书
2015/05/11 职场文书