Python/ socket Как отправлять сообщения без ожидания ответа от сервера?

Хочу отправлять сообщения без ожидания ответа от сервера. Однако, сколько не пытался застрял здесь:

import socket
import sys

def get_ip():
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    s.connect(("8.8.8.8", 80))
    return s.getsockname()[0]

if __name__ == "__main__":

    tcp_socket = socket.socket()

    print(">>>>>>>>>>>>>>>>>>>>>>>>")
    print("Старт сервера, IP: {}".format(get_ip()))
    print(">>>>>>>>>>>>>>>>>>>>>>>>")

    tcp_socket.bind(("", 9090))
    tcp_socket.listen(1)

    print("Ожидаение соединения...")
    conn, addr = tcp_socket.accept()

    try:
        print(f"Соединение с {addr}")

        while True:
            serv_mess = conn.recv(1024).decode()
            if not serv_mess:
                break

            print("Клиент: ", serv_mess)
            if serv_mess.lower() == "выход":
                break

            message = input("Сервер: ")
            if message:
                conn.send(message.encode())
            else:
                message = ">>>"
                conn.send(message.encode())

        print("Соединение закрыто")

    except Exception as err:
        print("Ошибка: ", err)
    finally:
        conn.close()

Здесь серверная часть, отправлять сообщения буду с telnet. Как это превратить в асинхронный сервер?


Ответы (0 шт):