如何正确检查连接

How I can check connection correctly

我有一个布尔变量:

is_conected = False

我有这部分代码:

def start(self, host='localhost', port=32767): 
    self.__connection.bind((host, port))
    self.__connection.listen(5) 

def send_frame(self, frame: str): 
    if not self.__connection.send(bytes(frame, encoding='utf-8')):
        raise RuntimeError("Connection broken.") 

def recieve_frame(self) -> str:
    socket, adress = self.__connection.accept()
    str(__data) = socket.recv(1024)  
    __frame_buffer.append(__data)

我需要把 If...Else 放在哪里,以便检查是否有人连接?我需要使用什么样的条件?

全部代码:

    import socket


class TCPServer():
    __frame_buffer = list() 
    __connection = None 
    is_conected = True 

    def __new__(cls):
        if not hasattr(cls, 'instance'):
            cls.instance = super(TCPServer, cls).__new__(cls)
        return cls.instance

    def __init__(self): 
        self.__connection = socket.socket(
            socket.AF_INET, socket.SOCK_STREAM)

    def start(self, host='localhost', port=32767): 
        #        """ Start server """
        self.__connection.bind((host, port))
        self.__connection.listen(5) 

    def send_frame(self, frame: str):        
    # """ Send frame """
        if not self.__connection.send(bytes(frame, encoding='utf-8')): 
            raise RuntimeError("Connection broken.") 

    def recieve_frame(self) -> str: 
        socket, adress = self.__connection.accept() 
        str(__data) = socket.recv(1024)  
        __frame_buffer.append(__data) 

    def get_frame(self) -> str:
        if self.__frame_buffer:
            self.__frame_buffer.pop(0)

server = TCPServer()
while True:
    if server.is_conected:
        server.send_frame(str(input("String to send")))
    print(server.get_frame())

这就是全部代码。我不写更多的部分,只写一个发送和接收帧的函数。所以,这对我来说有点像是一个学校项目,我不太擅长处理任何类型的连接或协议

服务器通常是这样工作的

with socket(AF_INET, SOCK_STREAM) as s:
    s.bind((HOST, PORT)) 
    s.listen() # Start listening
    while True:
        conn, addr = s.accept() # Accept connection request
        Connected = True # You are connected
        try: 
            #Work with connection
        except:
             Connected = False

找出如何使用您的代码执行此操作