如果我在上一次运行退出后立即重新启动,则 socket.accept() 中的无效参数异常

2024-01-04

我有一个用 python 编写的客户端服务器架构。大多数时候它工作正常,但有时,在我停止服务器并立即重新启动后,我会收到以下错误:

接受失败,原因是:22 消息参数无效,错误:[Errno 22] 参数无效

However,如果我等待几分钟并再次启动相同的脚本而不进行任何更改,它就可以正常工作。

这是我在服务器上用于接受来自客户端的传入连接的循环:

try:
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.bind(('',port))
    s.listen(1)
except:
    #logError()

while True:
    try:
        conn, address = s.accept() #THIS ACCEPT FAILS SOMETIMES
        multiprocessing.Process(target=HandleConnection, args=(conn, address, messageQueue, taskQueue, IOLock, numberOfConnections, numberOfConnectionsLock,resultsDirectory)).start()
    except socket.error, msg:
      #logError()  -> this except catches the error

运行服务器后端口是否会被阻塞一段时间?如果是这样,如果我想在服务器退出后立即再次启动服务器,是否有办法查询端口是否被阻止并等到它被解除阻止?


你需要设置SO_REUSEADDR绑定前。

setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)

如果不这样做可能会阻止套接字绑定,因此当accepting。如果您没有在第一个块中阻止异常,您就会注意到此错误。

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

如果我在上一次运行退出后立即重新启动,则 socket.accept() 中的无效参数异常 的相关文章

  • 只使用 Django 的某些部分?

    我喜欢 Django 但对于一个特定的应用程序 我只想使用它的一部分 但我对 Django 的内部工作原理还不够熟悉 所以也许有人可以指出我必须做什么的正确方向查看 具体来说 我想使用 模型和数据库抽象 The 缓存API http doc
  • 如何使用 lxml 解析包含前缀但没有名称空间声明的 XML?

    我有一堆使用前缀但没有相应名称空间声明的 XML 文件 像这样的东西
  • Spyder 导入模块出错

    我正在尝试在 Spyder 中使用 sklearn 一开始 当我尝试导入它时 我收到 ImportError No module named sklearn 然后我用 PYTHONPATH 管理器设置 PATH 然后使用工具菜单中的 更新模
  • Windows Defender 检测 Python EXE 为木马

    我制作了一个 Python 脚本 将 Windows 目录以 zip 形式邮寄给我 我使用 sched 模块添加了一个调度程序 每小时重复一次 我试图制作一个简单的同步应用程序供个人使用 在 Windows 启动时启动 我使用将其转换为 e
  • 如何为 C 分配的 numpy 数组注册析构函数?

    我想在 C C 中为 numpy 数组分配数字 并将它们作为 numpy 数组传递给 python 我可以做的PyArray SimpleNewFromData http docs scipy org doc numpy reference
  • 如何在Python中求和

    我想知道如何在 python 中表示总和而不需要像这样的循环here http docs scipy org doc scipy reference tutorial optimize html 我们有 def rosen x The Ro
  • 是否有更矢量化的方法来沿轴执行 numpy.outer ?

    gt gt gt x np array a0 a1 b0 b1 gt gt gt y np array x0 x1 y0 y1 gt gt gt iterable np outer x i y i for i in xrange x sha
  • python:是否有用于对输入流进行分块的库函数?

    我想对输入流进行分块以进行批处理 给定一个输入列表或生成器 x in 1 2 3 4 5 6 我想要一个能够返回该输入块的函数 说 如果chunk size 4 then x chunked 1 2 3 4 5 6 这是我一遍又一遍地做的事
  • PyCharm 无法识别字典值类型

    我有一个简单的代码片段 其中我将字典值设置为空列表 new dict for i in range 1 13 new dict i 现在 如果在下一行的循环内我会输入new dict i 并添加一个点 我希望 PyCharm 向我显示可用于
  • 如何删除 pandas 数据框中的唯一行?

    我遇到了一个看似简单的问题 在 pandas 数据框中删除唯一的行 基本上 相反drop duplicates https pandas pydata org pandas docs stable generated pandas Data
  • 如何在交互式绘图(Python)中获得鼠标指向的(x,y)位置?

    我使用 ipython 笔记本 带有魔法 matplotlib nbagg 我正在审查matplotlib widget Cursor但仅查看光标widgets Cursor http matplotlib org 1 4 3 exampl
  • 使 np.loadtxt 使用多个可能的分隔符

    我有一个程序可以读取数据文件 用户可以选择他们想要使用的列 我希望它对于输入文件更加通用 有时 列可能如下所示 10 34 24 58 8 284 6 121 有时它们可 能看起来像这样 10 34 24 58 8 284 6 121 我希
  • 如何绘制多类分类器的精度和召回率?

    我正在使用 scikit learn 我想绘制精度和召回曲线 我正在使用的分类器是RandomForestClassifier scikit learn 文档中的所有资源都使用二元分类 另外 我可以绘制多类的 ROC 曲线吗 另外 我只找到
  • 使用 Python 脚本打开特定文件类型?

    如何使 Python 脚本成为特定文件类型 例如 foo 的默认应用程序 例如 当我双击 Finder Explorer 中的文件时 我希望该文件在 Python 脚本中打开 这可以在 Win 和 或 OS X 中实现吗 如果重要的话 该应
  • Python:帮助(numpy)在退出时导致段错误

    我遇到了一个奇怪的现象 在 python 解释器中 我执行以下操作 gt gt gt import numpy gt gt gt help numpy 帮助显示正确 但一旦我按 q 返回解释器 Segmentation fault core
  • Scrapy的redirect_urls异常.KeyError

    我是 Scrapy 和 Python 的新手 最近推出了我的第一个蜘蛛 有一个功能似乎以前有效 但现在它只适用于我试图废弃的一些网站 代码行是 item url direct response request meta redirect u
  • 如何使用 pygame.mixer 重复音乐?

    我创建了以下使用 pygame mixer 播放 mp3 音乐的代码 然而 音乐不会重复 有什么想法可以让音乐重复播放吗 这是代码 playlist list playlist append put music here mp3 playl
  • Scrapy 抓取并跟踪 href 中的链接

    我对 scrapy 很陌生 我需要从 url 的主页跟踪 href 到多个深度 再次在 href 链接内我有多个 href 我需要遵循这些href 直到到达我想要抓取的页面 我的页面的示例 html 是 初始页 div class page
  • Pip 突然使用了错误版本的 Python

    在 os x 上使用 pip 时遇到一个奇怪的问题 据我所知 快速查看我的 bash history 似乎可以确认 我最近没有对我的配置进行任何更改 唉 pip 命令似乎突然使用了与以前不同的 python 版本 到目前为止 我使用命令 p
  • 部署 Flask 应用程序时如何检测额外文件的更改并重新加载应用程序? [关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我在 Flask 中构建了一个小型 Web 应用程序 并尝试将其部署在 Pythonanywhere 上 在开发过程中

随机推荐

  • vtk中顶点和点的区别

    顶点和点之间的主要区别是什么VTK http www vtk org 好吧 我正在将一些计算点分配给vtkPolyData http www vtk org doc nightly html classvtkPolyData html ou
  • 在 unix 中将行转置为列

    我有下面给出的输入文件 输入文件 10 9 11 61432568509 118 1 20130810014023 46 440 4 GTEL 10 9 11 61432568509 118 1 20130810014023 46 440
  • 在 mac 10.9 中安装 libgd 时出错

    我正在尝试按照此处的说明在我的 mac OSX 10 9 上安装 libgd https mikewest org 2007 04 installing libgd from source on os x https mikewest or
  • IIO(字符)设备输出无输出 - IIO 缓冲区

    我正在为 ADC ADS1243 开发 Linux 驱动程序并使用 IIO 框架 我想添加一个功能来读取 ADC 数据并将其存储到 IIO 缓冲区 我添加了 iio triggered buffer setup 来探测驱动程序的功能 ret
  • 自动 vlookup 并将系数与 R 相乘

    我正在尝试用 R 统计编程语言 编写一个函数 该函数允许我自动计算线性回归 lm 问题 回归是通过 step 函数计算的 因此无法提前知道所选择的系数 问题 自动识别阶跃函数选择的系数 Vlookup 和交叉乘以结果的第二列 例如 View
  • AWS DAX 集群具有零缓存命中和缓存未命中

    我使用的是包含 3 个 dax r4 xlarge 节点类型节点的 AWS DAX 集群 当我从 EMR 集群运行 Spark 应用程序时 它始终从 dynamodb 表中获取值 即使我在同一组密钥上运行相同的应用程序 它也会查询 dyna
  • 当类使用泛型和泛型类型参数时如何获取正确的 MethodInfo 对象

    我想知道是否有人能够演示如何使用 Type 的 GetMethod 方法来检索以下签名的 MethodInfo 对象 Class StaticMethod
  • pycharm 无法识别 Git

    我正在尝试使用 pyCharm 从 bitbucket 中提取 github 存储库 我在版本控制 Git 下添加了 git 可执行文件的路径并安装了 bitbucket 插件 如果我测试两者 它表示测试运行良好 但是 当我现在打开终端并尝
  • MongoDB 中是否有命名集合的约定?

    我想知道数据库集合是否有约定 例如 PageVisit or page visit 这些符号有什么优点 缺点吗 一般约定是 小写名称 这可以避免区分大小写的问题 因为 MongoDB 集合名称是区分大小写 Plural 将某物的集合标记为复
  • Angular 4 不活动后重定向

    每当您在页面上处于非活动状态时 我都需要设置超时 假设您在页面上呆了 20 秒而没有点击任何内容 它会将您重定向到主屏幕 当前的代码不适用于不活动状态 我不知道如何使其工作 ngOnInit do init at here for curr
  • Laravel 4 中无法切换语言

    我尝试通过路由切换语言 但没有任何变化 请你帮帮我好吗 Route get lang lang function lang App setLocale lang return Redirect to App setLocale 不是持久性的
  • 为什么 django 中的大型查询(或一系列查询)后内存没有释放到系统?

    首先 DEBUG False在settings py中 所以不 connections default queries不会不断增长 直到耗尽所有内存 让我们从我已经加载的事实开始User表来自django contrib auth mode
  • 如何将类型“byte[]”转换为“System.Data.Linq.Binary”

    我的数据库中有一个 WorkflowInstances 表 其中包含以下字段 ID int Name nvarchar 50 WorkflowID int 文档 varbinary MAX 我想插入一个新的 WorkflowInstance
  • 如何使用 poi 更新 Excel 工作表链接

    我试图在使用 setForceFormulaRecal 方法后获取更新的单元格值 但我仍然保留旧价值观 这不是实际结果 如果我通过单击打开原始文件 它将询问更新链接对话框 如果我单击 确定 按钮 则它会更新所有单元格公式结果 所以我想在打开
  • 如何通过AccountManager.addaccountExternally()在android中添加google帐户?

    我想明确添加一个谷歌帐户 我将提供用户名和密码 我刚刚解决了这个问题呼叫者 uid XXXX 与验证者的 uid 不同 https stackoverflow com questions 3774282 securityexception
  • 基于explain的Mysql优化

    我有以下查询 需要很长时间才能执行 我需要加快速度 但我不知道该使用什么技术 这是查询 SELECT User id User username User password User role User created User modif
  • 使用 BeautifulSoup 获取第 n 个元素

    我想使用 BeautifulSoup 从一个大表中读取第 5 10 15 20 行 我该怎么做呢 findNextSibling 和递增计数器是正确的方法吗 你也可以使用findAll获取列表中的所有行 然后只需使用切片语法来访问您需要的元
  • 如何使用docker在两个容器之间进行通信

    我面临访问另一个容器中的一个容器路由的问题 例如我有两个微服务称为用户服务 and api网关 我正在尝试访问用户服务路线进入api网关 My api网关文件可能如下所示 const userServiceProxy httpProxy h
  • 标题和描述未使用 Collective.dexteritytextindexer 建立索引

    我有很多 Dexterity 内容类型 其中一些只是容器 只留下标题和描述 来自 plone app dexterity behaviors metadata IBasic 行为 我可以通过搜索标题或描述中的文本来找到它们 但对于我正在使用
  • 如果我在上一次运行退出后立即重新启动,则 socket.accept() 中的无效参数异常

    我有一个用 python 编写的客户端服务器架构 大多数时候它工作正常 但有时 在我停止服务器并立即重新启动后 我会收到以下错误 接受失败 原因是 22 消息参数无效 错误 Errno 22 参数无效 However 如果我等待几分钟并再次