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

 更新时间:2017年08月15日 09:43:43   投稿:jingxian  
下面小编就为大家带来一篇socket + select 完成伪并发操作的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

实例如下:

#!/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中dir()与__dict__属性的区别浅析

    python中dir()与__dict__属性的区别浅析

    这篇文章主要给大家介绍了关于python中dir()与__dict__属性的区别的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-12-12
  • Python注释详解

    Python注释详解

    下面小编就为大家带来一篇Python注释详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • python基础之序列操作

    python基础之序列操作

    这篇文章主要介绍了python序列操作,实例分析了Python中返回一个返回值与多个返回值的方法,需要的朋友可以参考下
    2021-10-10
  • 详解在Python中使用Torchmoji将文本转换为表情符号

    详解在Python中使用Torchmoji将文本转换为表情符号

    这篇文章主要介绍了详解在Python中使用Torchmoji将文本转换为表情符号,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • python检查URL是否正常访问的小技巧

    python检查URL是否正常访问的小技巧

    检查一个URL是否正常很容易,如果检查2000个URL,或者是大批量的URL怎么办?这篇文章就为大家介绍了python检查URL是否正常访问的小技巧,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • pytorch使用horovod多gpu训练的实现

    pytorch使用horovod多gpu训练的实现

    这篇文章主要介绍了pytorch使用horovod多gpu训练的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • 基于tensorflow加载部分层的方法

    基于tensorflow加载部分层的方法

    今天小编就为大家分享一篇基于tensorflow加载部分层的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • 使用python PIL库实现简单验证码的去噪方法步骤

    使用python PIL库实现简单验证码的去噪方法步骤

    这篇文章主要介绍了使用python PIL库实现简单验证码的去噪方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • python字符串循环左移

    python字符串循环左移

    这篇文章主要为大家详细介绍了Python字符串循环左移,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-03-03
  • Python实现Window路径格式转换为Linux路径格式的代码

    Python实现Window路径格式转换为Linux路径格式的代码

    这篇文章主要介绍了Python实现Window路径格式转换为Linux路径格式的方法,文中通过代码示例讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2024-07-07

最新评论