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 相关文章推荐
Django框架中方法的访问和查找
Jul 15 Python
浅谈python函数之作用域(python3.5)
Oct 27 Python
python使用正则表达式的search()函数实现指定位置搜索功能
Nov 10 Python
numpy中的高维数组转置实例
Apr 17 Python
python3实现猜数字游戏
Dec 07 Python
Python模块_PyLibTiff读取tif文件的实例
Jan 13 Python
tensorflow 保存模型和取出中间权重例子
Jan 24 Python
Python单链表原理与实现方法详解
Feb 22 Python
Python Pandas 对列/行进行选择,增加,删除操作
May 17 Python
python获取整个网页源码的方法
Aug 03 Python
Python 操作SQLite数据库的示例
Oct 16 Python
Python中的程序流程控制语句
Feb 24 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检测移动设备类mobile detection使用实例
2014/04/14 PHP
PHP函数http_build_query使用详解
2014/08/20 PHP
PHP中curl_setopt函数用法实例分析
2015/04/16 PHP
php算法实例分享
2015/07/14 PHP
PHP类的声明与实例化及构造方法与析构方法详解
2016/01/26 PHP
PHP多线程模拟实现秒杀抢单
2018/02/07 PHP
Laravel框架分页实现方法分析
2018/06/12 PHP
PHP过滤器 filter_has_var() 函数用法实例分析
2020/04/23 PHP
Nigma vs Alliance BO5 第一场2.14
2021/03/10 DOTA
javascript温习的一些笔记 基础常用知识小结
2011/06/22 Javascript
兼容IE、firefox以及chrome的js获取时间(getFullYear)
2014/07/04 Javascript
node.js中的console.warn方法使用说明
2014/12/09 Javascript
编写简单的jQuery提示插件
2014/12/21 Javascript
javascript实现省市区三级联动下拉框菜单
2015/11/17 Javascript
Bootstrap网格系统详解
2016/04/26 Javascript
JS克隆,属性,数组,对象,函数实例分析
2016/11/26 Javascript
为输入框加入数字js校验代码分享
2017/11/02 Javascript
JS实现读取xml内容并输出到div中的方法示例
2018/04/19 Javascript
利用Angular2的Observables实现交互控制的方法
2018/12/27 Javascript
Fundebug支持监控微信小程序HTTP请求错误的方法
2019/02/21 Javascript
微信小程序中显示倒计时代码实例
2019/05/09 Javascript
VUE+Element实现增删改查的示例源码
2020/11/23 Vue.js
[43:58]DOTA2上海特级锦标赛C组败者赛 Newbee VS Archon第二局
2016/02/27 DOTA
Python内置模块logging用法实例分析
2018/02/12 Python
Python面向对象进阶学习
2019/05/21 Python
Python实现Selenium自动化Page模式
2019/07/14 Python
python读取ini配置文件过程示范
2019/12/23 Python
Python+unittest+requests 接口自动化测试框架搭建教程
2020/10/09 Python
大学生村官任职感言
2014/01/09 职场文书
城市精细化管理实施方案
2014/03/04 职场文书
动漫设计与制作专业推荐信
2014/07/07 职场文书
党干部专题民主生活会对照检查材料思想汇报
2014/10/06 职场文书
致800米运动员广播稿(10篇)
2014/10/17 职场文书
2015年手术室工作总结
2015/05/11 职场文书
导游词之泰山玉皇顶
2019/12/23 职场文书
python 使用Tensorflow训练BP神经网络实现鸢尾花分类
2021/05/12 Python