当前位置: 首页 > 面试题库 >

管道破裂后如何重新连接插座?

微生耘豪
2023-03-14
问题内容

程序连接到服务器,并且当服务器关闭连接时,如果我尝试重新连接,它会说:socket.error: [Errno 9] Bad file descriptor
如果我关闭客户端中的套接字,然后尝试重新连接,它会说:socket.error: [Errno 106] Transport endpoint is already connected

有没有办法在管道破裂后重新连接它而不创建新的套接字?

import socket
host = '127.0.0.1'
port = 1337
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
def loop():
    try:
        while 1:
            print s.recv(512)
    except socket.error:
        #s.close()?
        connect()
def connect():
    s.connect((host, port))
    loop()
connect()

问题答案:

假设这是一个面向连接的套接字:

否。您必须关闭旧的插座并创建一个新的插座,



 类似资料:
  • 我有一个非常奇怪的问题,我希望你的眼睛能帮助解决它。 我定义了一个函数,它通过BASH连接到Oracle SQL数据库。连接后,我使用一个herdeoc传入一个简单的select语句,该语句查找最大订阅id并递增它,具体取决于函数被调用的次数。代码如下: 在命令行调用函数时,上述代码非常有效: 但是,当函数通过管道传输到AWK语句时,函数不再抖动,这毫无意义!请参阅下面的输出: 我不明白。哈哈,我

  • 我使用ApacheCommons http客户端调用url,使用post方法发布参数,它很少抛出以下错误。 有人能建议是什么导致了这个异常以及如何调试它吗?

  • 问题内容: 目前,我正在使用内置于python的应用程序。当我在个人计算机上运行它时,它不会出现问题。 但是,当我将其移至生产服务器时。它不断向我显示以下错误: 我进行了一些研究,得出的原因是,当服务器仍在忙于发送数据时,最终用户浏览器会停止连接。 我想知道为什么会发生这种情况,以及根本原因是什么导致它无法在生产服务器上正常运行,而我的计算机却可以正常运行。任何建议表示赞赏 问题答案: 您的服务器

  • 我在tomcat7上使用Solr 4.3。当并发写入和读取的数量增加时,会引发此SocketException错误。我通过多个客户端进行并发提交和搜索。感谢您的任何帮助。这是tomcat日志(catalina.out)和solr。日志

  • 我正在对一个由zuul代理服务支持的简单Spring云应用程序进行一些压力测试。由于Zuul和服务之间的旧连接,我们偶尔会出现管道异常。我使用不同的配置选项配置Zuul,但没有成功: 例外情况如下: 通用域名格式。netflix。祖尔。例外ZuulException:组织转发错误。springframework。云netflix。祖尔。过滤器。路线RibbonRoutingFilter。转发(Ri

  • 我们将我们的集群迁移到Cassandra 1.2(从1.1.7),并尝试在迁移后运行修复(我们按照建议定期运行它们)。 由于SSTable版本不同,修复失败,因此我们使用和并重试。 但是,修复失败了,但有这个例外: 我们还注意到,在死亡之前,< code>nodetool netstats显示了奇怪的统计数据(表传输为756845%...). 编辑 这似乎是压缩SSTables传输的问题,我将尝试