Я пишу программу на C, состоящую из одного потока диспетчера и N рабочего потока, ответственность за который описана ниже:
поток диспетчера: прослушивание порта TCP;делать epoll_wait () повторно на этом порту;когда соединение установлено, примите его и передайте новый файловый дескриптор (то есть, что возвращает функция «accept») одному из рабочих потоков N;
рабочий поток: при каждом новом подключении повторяйте чтение до тех пор, пока не будет данныхполучено;использование всех данных, полученных в качестве параметра, для вызова функции декодирования, которая будет декодировать данные в структуру сообщения (т.е. сообщение RTSP);
, что мне интересно, так это то, что если данные, прочитанные рабочим потоком, являются неполными,я должен кешировать его, что означает, что я должен поддерживать глобальный список для кеширования неиспользуемых данных (т.е. полученных, но не полных сообщений, поэтому еще не использованных) для каждого соединения?