socket.error:[Errno 10054]现有连接被远程主机强制关闭(python2.7)

2024-05-05

我的套接字有问题,它运行良好,但是当我关闭客户端/关闭客户端窗口时,服务器丢失了连接(服务器需要保持打开状态并等待其他连接)

while True:
    rlist, wlist, xlist = select.select([server_socket]+open_client_sockets, open_client_sockets, [])
    for current_socket in rlist:
        if current_socket is server_socket:
            (new_socket, address) = server_socket.accept()
            open_client_sockets.append(new_socket)
            print 'new member : ' + str(address)
        else:
            data = current_socket.recv(1024)
            print data
            if data == "":
                open_client_sockets.remove(current_socket)
                print 'Connection with client closed.'

            else:
                send_messages(data)

问题出在这一部分——

if data == "":
                open_client_sockets.remove(current_socket)
                print 'Connection with client closed.

这是错误 -

data = current_socket.recv(1024)
error: [Errno 10054] An existing connection was forcibly closed by the remote host

我在以前的套接字中没有收到此错误


当客户端优雅地关闭套接字时,例如client_socket.shutdown(socket.SHUT_WR)服务器将接收所有数据,然后是下一个数据recv调用将获得 0 字节。您已经为此案例编写了代码。

当客户端在没有正常关闭的情况下退出时,底层套接字实现将执行非正常终止,其中包括发送RESET到服务器。在这种情况下,服务器会收到您所看到的异常。这意味着在套接字级别无法保证服务器收到其所有数据。

您应该更新您的客户,使其能够优雅地关闭,并决定您对非优雅退出的政策。

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

socket.error:[Errno 10054]现有连接被远程主机强制关闭(python2.7) 的相关文章

随机推荐

  • Python for 循环中的多个循环控制变量

    我遇到了一种情况 我需要实现具有多个循环控制变量的 for 循环 基本上这就是我想做的 Java for int i 0 j n i
  • iOS WKWebView不支持本地存储

    我正在构建一个简单的 WKWebView 应用程序 该应用程序加载用 Construct HTML5 编写的游戏 游戏存储在服务器上 当我在常规浏览器 移动和桌面 中玩游戏时 游戏本身会存储在本地 并且高分也会存储在本地 重新启动游戏后不需
  • 如何在 C++ 中对字符串使用 qsort

    我想使用 qsort 函数使用 C 对字符串中的字符进行排序 include
  • 在 tweetinvi 中查找推文的 tweetID

    我对 C 编程相对较新 为学校项目自学 并决定尝试使用 TweetInvi 来实现 Twitter 功能 到目前为止 一切进展顺利 身份验证和发布已启动并运行 但我正在努力找出如何使用 DestroyTweet 方法 它和许多其他方法都需要
  • 流媒体视频文件?

    我需要流式传输 flv 文件 流媒体应该看起来像直播 我应该有一种方法可以更改目标文件 抱歉我的英语不好 如果 流式传输 的意思是 显示 Flash 视频剪辑 则 flv streaming 并不是真正的流式传输 而是正常的文件传输 即使文
  • 把自己限制在HTTP1.0有什么用吗?

    我负责构建一些工具来帮助最终用户测试为什么他们的浏览器可能无法与网站配合使用 我被告知它可能不起作用的原因之一是 需要 HTTP1 1 这一行 我浏览了大多数浏览器选项 只浏览了 IE 版本 6 及更高版本 even 9 允许您禁用 HTT
  • 将 pdfmake.js 文件导入到我的 ts 文件中

    我正在开发 vsts 网络扩展 我想要一个使用PDFmake js文件来生成一个pdf PDFmake js文件是imported to node nodules文件夹通过安装为npm install pdfmake 我想要import t
  • CocoaPods 库中的强dispatch_queue_t

    在可能使用 iOS 5 x OS X 10 7 部署目标或较新的部署目标构建的库中 我在正确定义dispatch queue t财产 大多数情况下我可以按照建议解决它here https stackoverflow com a 248460
  • 使用 C# 作为我的 DSL——这可能吗?如果可以,如何实现?

    是否可以使用 C 作为 DSL其中 C 源代码由最终用户在 TextBox 中编辑 在应用程序运行时编译 然后由已运行的应用程序调用 我问这个问题是因为在接下来的几个月里 我将需要实现一个简单的数学运算 DSL 类似于 Rachel Lim
  • 在 macOS 上运行 Comma IDE 时找不到匹配的虚拟机

    我安装了 Comma IDEthis https commaide com download链接 但当我尝试通过双击应用程序文件夹中 Finder 中的应用程序图标来运行它时 出现错误 未找到匹配的 VM 需要 Java 1 8 或更高版本
  • jQuery 无法从本地主机检索数据

    我有一个非常简单的 jQuery 来检索我最新的推文 getJSON http twitter com statuses user timeline username json count 1 function data tweet tex
  • 更改在 docker 中运行的 selenium 节点的日志级别

    我们的团队正在使用 docker 部署 selenium 网格 默认日志级别似乎设置为 INFO 我想将其设置为更高的值 严重 或完全关闭它们 我已经进行了三次尝试 但到目前为止 没有效果 方法一 从 selenium 客户端 我尝试在 D
  • Foldmethod=同时标记和语法?

    同一文件是否可以根据标记和语法使用折叠 Since foldmethod一次只能设置为一个 我认为您真正可以做到这一点的唯一方法是使用 set foldmethod expr并与foldexpr 即使如此 我也不确定它是否能够完全按照您的要
  • 如何将 SQL 参数中的字符串数组传递给 SQL 中的 IN 子句

    我正在以复杂的方式做一个逻辑 我只需要在存储过程中执行此查询 select Sizes SUM Quantity from tbl SizeBreakup where Brand brand and Combo in 1 2 我必须在 C
  • for 循环语法,其中包含 if 语句

    使用 if 语句编写 for 循环的普遍共识是什么 for int i 0 i lt hi i if some invalid condition continue if another invalid condition continue
  • 我无法在 PyCharm 下运行 Django Python pytest

    pytest portal test session starts platform darwin Python 3 6 0 pytest 3 0 6 py 1 4 32 pluggy 0 4 0 Django settings confi
  • 如果服务器在使用 dblink 时未请求密码,则非超级用户无法连接

    我想在我的应用程序中进行一些跨数据库引用 简而言之 我有两个数据库 分别称为meta 和op 我想从元到 op 数据库中的表进行一些选择查询 如下所示 但出现以下错误 我尝试了有密码和无密码 顺便一提caixa用户是非超级用户 我的目标服务
  • 值类型不完整的映射

    我收到以下错误 class Test std map
  • 为什么 Pearson 相关输出为 NaN?

    我正在尝试获取 R 中变量之间的皮尔逊相关系数 这是变量的散点图 ggplot results summary aes x D in y D ex geom point col ifelse results summary FDR lt 0
  • socket.error:[Errno 10054]现有连接被远程主机强制关闭(python2.7)

    我的套接字有问题 它运行良好 但是当我关闭客户端 关闭客户端窗口时 服务器丢失了连接 服务器需要保持打开状态并等待其他连接 while True rlist wlist xlist select select server socket o