Работа с UDP в несколько процессов

Для начала код - отлично выбирает пакеты из сокета:

def udp_process(protocol_factory, sock):
    loop = asyncio.new_event_loop()
    transport, protocol = loop.run_until_complete(
        loop.create_datagram_endpoint(protocol_factory, sock=sock)
        )
    loop.run_forever()
    transport.close()
    loop.close()

def udp_process_pool(protocol_factory, port, n=4):
    sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    sock.bind(('', port))
    processes = [ multiprocessing.Process(target=udp_process, args=(protocol_factory, sock), name=f"udp {port} #{i}") for i in range(n) ]
    return processes

Но нужно к нему реализовать сессии с TLS.

Пока лучшее что придумал - пересылать в SOCK_STREAM в другой процесс и там уже хранить SSL объект.


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