在python中创建非阻塞套接字

2023-11-27

我试图了解非阻塞套接字是如何工作的,所以我用 python 编写了这个简单的服务器。

import socket

s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)

s.bind(('127.0.0.1',1000))
s.listen(5)
s.setblocking(0)
while True:
      try:
            conn, addr = s.accept()
            print ('connection from',addr)
            data=conn.recv(100)
            print ('recived: ',data,len(data))

      except:
          pass  

然后我尝试从该客户端的多个实例连接到该服务器

import socket

s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('127.0.0.1',1000))
while True:
    continue

但由于某种原因,将阻塞设置为 0 或 1 似乎没有效果,服务器的 recv 方法总是阻塞执行。 因此,在 python 中创建非阻塞套接字需要的不仅仅是将阻塞标志设置为 0。


setblocking只影响您使用它的套接字。所以你必须添加conn.setblocking(0)看看效果:recv如果没有可用数据,将立即返回。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在python中创建非阻塞套接字 的相关文章

  • 使用 psycopg2 在 python 中执行查询时出现“编程错误:语法错误位于或附近”

    我正在运行 Python v 2 7 和 psycopg2 v 2 5 我有一个 postgresql 数据库函数 它将 SQL 查询作为文本字段返回 我使用以下代码来调用该函数并从文本字段中提取查询 cur2 execute SELECT
  • 通过 Scrapy 抓取 Google Analytics

    我一直在尝试使用 Scrapy 从 Google Analytics 获取一些数据 尽管我是一个完全的 Python 新手 但我已经取得了一些进展 我现在可以通过 Scrapy 登录 Google Analytics 但我需要发出 AJAX
  • Python 的键盘中断不会中止 Rust 函数 (PyO3)

    我有一个使用 PyO3 用 Rust 编写的 Python 库 它涉及一些昂贵的计算 单个函数调用最多需要 10 分钟 从 Python 调用时如何中止执行 Ctrl C 好像只有执行结束后才会处理 所以本质上没什么用 最小可重现示例 Ca
  • 如何在flask中使用g.user全局

    据我了解 Flask 中的 g 变量 它应该为我提供一个全局位置来存储数据 例如登录后保存当前用户 它是否正确 我希望我的导航在登录后在整个网站上显示我的用户名 我的观点包含 from Flask import g among other
  • Python(Selenium):如何通过登录重定向/组织登录登录网站

    我不是专业程序员 所以请原谅任何愚蠢的错误 我正在做一些研究 我正在尝试使用 Selenium 登录数据库来搜索大约 1000 个术语 我有两个问题 1 重定向到组织登录页面后如何使用 Selenium 登录 2 如何检索数据库 在我解决
  • 通过最小元素比较对 5 个元素进行排序

    我必须在 python 中使用元素之间的最小比较次数来建模对 5 个元素的列表进行排序的执行计划 除此之外 复杂性是无关紧要的 结果是一个对的列表 表示在另一时间对列表进行排序所需的比较 我知道有一种算法可以通过 7 次比较 总是在元素之间
  • 使用 on_bad_lines 将 pandas.read_csv 中的无效行写入文件

    我有一个 CSV 文件 我正在使用 Python 来解析该文件 我发现文件中的某些行具有不同的列数 001 Snow Jon 19801201 002 Crom Jake 19920103 003 Wise Frank 19880303 l
  • 根据列值突出显示数据框中的行?

    假设我有这样的数据框 col1 col2 col3 col4 0 A A 1 pass 2 1 A A 2 pass 4 2 A A 1 fail 4 3 A A 1 fail 5 4 A A 1 pass 3 5 A A 2 fail 2
  • SQLALchemy .query:类“Car”的未解析属性引用“query”

    我有一个这里已经提到的问题https youtrack jetbrains com issue PY 44557 https youtrack jetbrains com issue PY 44557 但我还没有找到解决方案 我使用 Pyt
  • Python pickle:腌制对象不等于源对象

    我认为这是预期的行为 但想检查一下 也许找出原因 因为我所做的研究结果是空白 我有一个函数可以提取数据 创建自定义类的新实例 然后将其附加到列表中 该类仅包含变量 然后 我使用协议 2 作为二进制文件将该列表腌制到文件中 稍后我重新运行脚本
  • 如何加速Python中的N维区间树?

    考虑以下问题 给定一组n间隔和一组m浮点数 对于每个浮点数 确定包含该浮点数的区间子集 这个问题已经通过构建一个解决区间树 https en wikipedia org wiki Interval tree 或称为范围树或线段树 已经针对一
  • 如何使用 OpencV 从 Firebase 读取图像?

    有没有使用 OpenCV 从 Firebase 读取图像的想法 或者我必须先下载图片 然后从本地文件夹执行 cv imread 功能 有什么办法我可以使用cv imread link of picture from firebase 您可以
  • 在Python中获取文件描述符的位置

    比如说 我有一个原始数字文件描述符 我需要根据它获取文件中的当前位置 import os psutil some code that works with file lp lib open path to file p psutil Pro
  • 每个 X 具有多个 Y 值的 Python 散点图

    我正在尝试使用 Python 创建一个散点图 其中包含两个 X 类别 cat1 cat2 每个类别都有多个 Y 值 如果每个 X 值的 Y 值的数量相同 我可以使用以下代码使其工作 import numpy as np import mat
  • 如何在 Python 中追加到 JSON 文件?

    我有一个 JSON 文件 其中包含 67790 1 kwh 319 4 现在我创建一个字典a dict我需要将其附加到 JSON 文件中 我尝试了这段代码 with open DATA FILENAME a as f json obj js
  • 解释 Python 中的数字范围

    在 Pylons Web 应用程序中 我需要获取一个字符串 例如 关于如何做到这一点有什么建议吗 我是 Python 新手 我还没有找到任何可以帮助解决此类问题的东西 该列表将是 1 2 3 45 46 48 49 50 51 77 使用
  • Scrapy:如何使用元在方法之间传递项目

    我是 scrapy 和 python 的新手 我试图将 parse quotes 中的项目 item author 传递给下一个解析方法 parse bio 我尝试了 request meta 和 response meta 方法 如 sc
  • 如何使用 Pycharm 安装 tkinter? [复制]

    这个问题在这里已经有答案了 I used sudo apt get install python3 6 tk而且效果很好 如果我在终端中打开 python Tkinter 就可以工作 但我无法将其安装在我的 Pycharm 项目上 pip
  • 如何将输入读取为数字?

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 Why are x and y下面的代码中使用字符串而不是整数 注意 在Python 2
  • NotImplementedError:无法将符号张量 (lstm_2/strided_slice:0) 转换为 numpy 数组。时间

    张量流版本 2 3 1 numpy 版本 1 20 在代码下面 define model model Sequential model add LSTM 50 activation relu input shape n steps n fe

随机推荐

  • JavaScript 事件处理程序的执行顺序

    有这个JS代码 document getElementById e1 addEventListener click function alert 1 false document getElementById e2 addEventList
  • Angularjs简单文件下载导致路由器重定向

    HTML a href mysite com uploads asd4a4d5a pdf 上传获得唯一的文件名 而真实姓名保存在数据库中 我想实现一个简单的文件下载 但上面的代码重定向到 因为 routeProvider otherwise
  • 如何在应用程序关闭时终止 Delphi 中的匿名线程?

    我有一个 Delphi 应用程序 它在某些 TTimer OnTimer 事件上生成 6 个匿名线程 如果我通过标题栏中的 X 按钮关闭应用程序 则会引发地址 C0000005 处的访问冲突 并且 FastMM 报告泄漏的 TAnonymo
  • 堆栈溢出时出现段错误

    为什么Linux内核会在堆栈溢出时产生段错误 当用 c 或 fortran 创建临时数组时发生分配溢出时 这会使调试变得非常困难 当然 运行时可能会产生更有用的错误 实际上 您可以使用信号处理程序捕获堆栈溢出的情况 为此 您必须做两件事 使
  • 未捕获的 ReferenceError:在通过操作进行 api 调用时,react 17、webpack 5 中未定义 regeneratorRuntime

    出现这个错误Uncaught ReferenceError regeneratorRuntime is not defined当尝试使用 superagent 进行 api 调用时 目前我正在使用 React 17 webpack 5 以及
  • 将具有子数组的对象数组映射并减少为具有父 ID 的子数组

    我正在尝试获取像这样的一系列对象 id uniqueParentId1 children childProp1 test1 childProp2 test3 id uniqueParentId2 children childProp1 so
  • 在 Delphi 10.1 Berlin 中使用 VCL 样式时,TSaveDialog 的属性“ofOverwritePrompt”不起作用

    创建一个新的 VCL Forms 应用程序 在主窗体上添加一个 Tbutton 和一个 TSaveDialog 在 SaveDialog1 的属性中将 ofOverwritePrompt 设置为 True Use procedure TFo
  • 如何解密 AES-128 加密的 m3u8 视频文件?

    我尝试解密 AES 128 加密的 m3u8 视频文件 如下所示 m3u8 文件 EXTM3U EXT X MEDIA SEQUENCE 0 EXT X ALLOW CACHE NO EXT X VERSION 2 EXT X FAXS C
  • Node.js + Socket.io + Apache

    我正在寻找一种通过以下方式集成 Node js Socket io Apache 的方法 我希望 apache 继续提供 HTML JS 文件 我希望 node js 侦听端口 8080 上的连接 如下所示 var util require
  • Go 接口有哪些示例?

    I found 一篇有趣的博客文章关于围棋 我试图理解接口的概念 但我发现从博客文章中的代码片段来看很难做到这一点 而且几乎不可能语言规范 谁能指出一个工作程序中 Go 接口的简单示例 这是一个正在进行的学习练习 当然也是良好风格的一个糟糕
  • 从字符串列表中删除空字符串

    我想从 python 的字符串列表中删除所有空字符串 我的想法是这样的 while in str list str list remove 有没有更多的Pythonic方法来做到这一点 我会用filter str list filter N
  • Identity Core 的密码历史记录

    密码历史记录有默认实现吗 我正在尝试在我的项目中使用身份来实现该功能 因此我添加了包含密码哈希值的密码历史表 当用户更改密码时 usermanager 会生成密码的哈希值 var passwordHash userManager Passw
  • 如何签署 MSI?

    我的公司希望阻止客户安装我们的产品时出现的 UAC 弹出窗口 我们从 VeriSign VeriSign Class 3 Code Signing 2010 CA 购买了证书 我得到了一个 MyCompany cer 文件 我通过双击证书并
  • 如何将 sockaddr_in6::sin6_addr 字节顺序设置为网络字节顺序?

    我开发了一个网络应用程序并使用套接字 API 我想设置sockaddr in6结构的sin6 addr字节顺序 对于 16 位或 32 位变量 很简单 使用 htons 或 htonl IPv4 sockaddr in addr addr
  • OpenCV findFundamentalMat 非常不稳定且敏感

    我正在为我的大学开展一个项目 我们希望四轴飞行器能够用他的相机稳定自己 不幸的是 基本矩阵对特征点内的微小变化反应非常敏感 我稍后会给你例子 我认为由于 ocv 我的匹配已经工作得很好了 我正在使用 SURF 特征并将它们与 knn Met
  • 约束表达式无效

    下列代码示例与 GCC 12 2 和 MSVC 19 33 不同 它不能使用 Clang 15 或 Clang trunk 进行编译 嵌套required子句中的约束表达式是否无效 struct t constexpr auto b con
  • 使用 Rangy 保存其位置时,插入符号在 Firefox 中消失

    这种情况仅发生在 Firefox 中 重要提示 我正在保存插入符的位置rangy saveSelection 当点击内容可编辑div时 on keyup 将外部 html 元素 作为节点 添加到内容可编辑 div 时 我需要通过多种方式不断
  • Javascript 中的条形图:堆叠条形图 + 分组条形图

    我正在寻找一个 Javascript 解决方案 将分组和堆叠条形图与漂亮的图表混合在一起 例如由Protovis 例如 如果我想比较 Apple iPad iPhone 设备和 Android 设备上的下载量 我可能会这样做 请原谅我糟糕的
  • 解码或转义 \u00f0\u009f\u0091\u008d 为

    我们都知道 UTF 8 很难 我从 Facebook 导出消息 生成的 JSON 文件将所有非 ASCII 字符转义为 unicode 代码点 我正在寻找一种简单的方法来将这些 un icode 代码点转义为常规的旧 UTF 8 我也很想使
  • 在python中创建非阻塞套接字

    我试图了解非阻塞套接字是如何工作的 所以我用 python 编写了这个简单的服务器 import socket s socket socket socket AF INET socket SOCK STREAM s bind 127 0 0