一尘不染

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

python

该程序连接到服务器,并且当服务器关闭连接时,如果我尝试重新连接,它会说: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()

阅读 141

收藏
2021-01-20

共1个答案

一尘不染

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

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

2021-01-20