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


相关推荐: 如何在IIS服务器上快速部署高效网站?  Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例  如何快速打造个性化非模板自助建站?  Laravel如何实现全文搜索_Laravel Scout集成Algolia或Meilisearch教程  Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】  实现点击下箭头变上箭头来回切换的两种方法【推荐】  nodejs redis 发布订阅机制封装实现方法及实例代码  Laravel如何编写单元测试和功能测试?(PHPUnit示例)  Laravel安装步骤详细教程_Laravel环境搭建指南  如何在搬瓦工VPS快速搭建网站?  Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧  Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程  高防服务器租用指南:配置选择与快速部署攻略  Gemini怎么用新功能实时问答_Gemini实时问答使用【步骤】  浅谈redis在项目中的应用  历史网站制作软件,华为如何找回被删除的网站?  JavaScript模板引擎Template.js使用详解  Laravel队列由Redis驱动怎么配置_Laravel Redis队列使用教程  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  黑客如何利用漏洞与弱口令入侵网站服务器?  韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐  Laravel如何配置Horizon来管理队列?(安装和使用)  Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制  php8.4header发送头信息失败怎么办_php8.4header函数问题解决【解答】  Android 常见的图片加载框架详细介绍  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  Python正则表达式进阶教程_复杂匹配与分组替换解析  想要更高端的建设网站,这些原则一定要坚持!  Android使用GridView实现日历的简单功能  Laravel Eloquent:优雅地将关联模型字段扁平化到主模型中  php嵌入式断网后怎么恢复_php检测网络重连并恢复硬件控制【操作】  移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法  Laravel项目结构怎么组织_大型Laravel应用的最佳目录结构实践  如何在万网ECS上快速搭建专属网站?  Linux系统命令中tree命令详解  公司网站制作需要多少钱,找人做公司网站需要多少钱?  如何挑选优质建站一级代理提升网站排名?  浅析上传头像示例及其注意事项  Laravel如何使用Service Container和依赖注入?(代码示例)  在线教育网站制作平台,山西立德教育官网?  重庆市网站制作公司,重庆招聘网站哪个好?  Laravel API路由如何设计_Laravel构建RESTful API的路由最佳实践  东莞专业网站制作公司有哪些,东莞招聘网站哪个好?  Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】  谷歌浏览器下载文件时中断怎么办 Google Chrome下载管理修复  iOS中将个别页面强制横屏其他页面竖屏  悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】  Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程