Просто быстрый вопрос. У меня есть приложение сети C (TCP-сервер), у которого есть несколько рабочих потоков (Pthreads). Каждый рабочий поток использует системный вызов select
, и каждый поток имеет прослушивание socket descriptor
, добавленное к его выбору. Таким образом, каждый рабочий поток прослушивает входящие соединения, и только один поток за один раз успевает принять конкретное соединение и что соединения добавлено в набор select
соответствующего потока.Обмен дескриптором сокета между несколькими потоками
Мой вопрос в том, что каждый поток имеет свой собственный набор select
, возможно ли, что я могу отправлять или получать данные клиенту, дескриптор сокета которого находится в других рабочих потоках, выбранном набором? другими словами, можно ли использовать дескриптор сокета из набора выбранных рабочих потоков для выполнения ввода-вывода из любого потока, который я хочу? Thanks
Извините за двойную проверку:/Это означает, что если поток принимает соединение, а дескриптор возвращаемого файла добавляется в другие потоки, выберите, все они смогут записывать/читать из этого дескриптора правильно? – Abdullah
AFAIK, да, не должно быть никакого различия в том, какой поток был создан/принят FD. – MByD
Спасибо большое. очень ценится :) – Abdullah