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

发布于 2021-01-29 14:11:22

该程序连接到服务器,并且当服务器关闭连接时,如果我尝试重新连接,它会说: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()
关注者
0
被浏览
131
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

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

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



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看