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

发布时间 - 2026-01-11 02:47:42    点击率:

实例如下:

#!/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 完成伪并发操作的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


# socket  # select  # Python基于select实现的socket服务器  # 客户端  # 给大家  # 就把  # 希望能  # 这篇  # 绑定  # 创建一个  # 小编  # 大家多多  # import  # bytes  # python  # coding  # utf  # sendall  # ip  # bind  # color  # ccffcc 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何彻底卸载建站之星软件?  Laravel如何使用Scope本地作用域_Laravel模型常用查询逻辑封装技巧【手册】  ,在苏州找工作,上哪个网站比较好?  如何有效防御Web建站篡改攻击?  laravel怎么在请求结束后执行任务(Terminable Middleware)_laravel Terminable Middleware请求结束任务执行方法  利用vue写todolist单页应用  javascript中的try catch异常捕获机制用法分析  香港服务器如何优化才能显著提升网站加载速度?  Laravel Seeder填充数据教程_Laravel模型工厂Factory使用  C语言设计一个闪闪的圣诞树  购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?  Laravel如何使用Blade组件和插槽?(Component代码示例)  打造顶配客厅影院,这份100寸电视推荐名单请查收  Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】  Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】  Laravel N+1查询问题如何解决_Eloquent预加载(Eager Loading)优化数据库查询  如何用好域名打造高点击率的自主建站?  如何在IIS中新建站点并解决端口绑定冲突?  Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】  C++用Dijkstra(迪杰斯特拉)算法求最短路径  HTML 中如何正确使用模板变量为元素的 name 属性赋值  如何快速查询网站的真实建站时间?  用yum安装MySQLdb模块的步骤方法  Laravel模型关联查询教程_Laravel Eloquent一对多关联写法  如何在Windows服务器上快速搭建网站?  如何在沈阳梯子盘古建站优化SEO排名与功能模块?  如何在腾讯云免费申请建站?  Laravel如何发送系统通知?(Notification渠道示例)  Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程  深圳网站制作平台,深圳市做网站好的公司有哪些?  Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】  Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】  Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  nginx修改上传文件大小限制的方法  千库网官网入口推荐 千库网设计创意平台入口  ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法  大连网站制作公司哪家好一点,大连买房网站哪个好?  详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)  🚀拖拽式CMS建站能否实现高效与个性化并存?  网站制作企业,网站的banner和导航栏是指什么?  lovemo网页版地址 lovemo官网手机登录  Gemini怎么用新功能实时问答_Gemini实时问答使用【步骤】  最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?  如何在服务器上配置二级域名建站?  制作电商网页,电商供应链怎么做?  油猴 教程,油猴搜脚本为什么会网页无法显示?  公司网站制作价格怎么算,公司办个官网需要多少钱?  如何确保西部建站助手FTP传输的安全性?  WEB开发之注册页面验证码倒计时代码的实现