Я сделал сокет сервера 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};
Я не уверен, где epoll вписывается в ваше описание. Если каждый сокет принадлежит отдельному потоку, то нет смысла использовать epoll. epoll () используется для асинхронного программирования, где несколько сокетов могут управляться одним потоком выполнения.