Есть ли способ проверить, работает ли сокет? - PullRequest
0 голосов
/ 21 ноября 2019

Мне нужно поговорить между двумя клиентами. Но я не знаю, когда сокет закрыт или нет, есть ли способ проверить, если он есть?

Вот часть кода, которую мне нужно исправить:

def main():
    """Implements the conversation with server."""
    # Open client socket, Transport layer: protocol TCP, Network layer: protocol IP
    client_socket = socket.socket()
    client_socket.connect((HOST_IP, PORT))

    # start conversation with new client in parallel thread
    name = input("enter your name ")
    protocol.send_request(client_socket, name)
    thread_for_responses = threading.Thread(target=get_responses,
                                            args=(client_socket, ))
    thread_for_responses.start()

    while True:
        # Get request from keyboard
        client_request_str = input()
        if client_request_str:  # if client_request_str not empty string
            # send request according to the protocol
            protocol.send_request(client_socket, client_request_str)
            # Get response from server

Вместо while True мне нужно проверить, закрыт ли сокет, чтобы он не зацикливался на использовании закрытого сокета.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...