множественное управление epoll с помощью потока избежать EEXIST

Я сделал сокет сервера TCP / UDP epoll и каждый сокет слушал друг в друге потоки. Но, epoll_ctl_return существовать.

Я использую разные порты, поэтому эту проблему можно решить с помощью fork, но
Я хочу обрабатывать несколько серверов сокетов в одном процессе и нескольких потоках.

Я прочитал статью в C # несколько сокетов сервера.
это невозможно с помощью epoll?

Или несколько серверных сокетов добавляют epoll?

это мой псевдокод

listener* tcpListener = new listener(ip,port, protocolType.tcp);

tcpListener.bind();

std::thread t{listener::listen, tcpListener};

listener* udpListener = new listener(ip,port,protocolType.udp);

udpListener.bind();

std::thread u{listener::listen, udpListener};

-1

Решение

Я не уверен, где epoll вписывается в ваше описание. Если каждый сокет принадлежит отдельному потоку, то нет смысла использовать epoll. epoll () используется для асинхронного программирования, где несколько сокетов могут управляться одним потоком выполнения.

0

Другие решения


По вопросам рекламы ammmcru@yandex.ru
Adblock
detector