Я написал программу, которая создает сокет TCP и UDP в C и запускает оба сервера.Цель приложения состоит в том, чтобы отслеживать запросы через сокет TCP о том, какие пакеты UDP отправлять (т. Е. Отслеживать что-то вроде «0x01 0x02», и, если я вижу это, тогда сервер UDP анализирует полезную нагрузку и пересылает ее черезна сервер TCP для обработки).Проблема в том, что UDP-сервер будет занят поддержанием другого устройства, буквально отправляя тысячи устройств туда и обратно с этим устройством.Итак, каков наилучший способ непрерывного мониторинга запросов от TCP-сервера, но отправлять ему определенные полезные данные с UDP-сервера по запросу, поскольку UDP-сервер будет занят?
Я изучил pthread с семафорами и / или мьютексом(хотя не уверен, что все операции с сокетами являются потокобезопасными, и если это правильный путь к нему), а также с fork / pipe.Отключение UDP-сервера как дочернего процесса кажется достаточно простым, но я не понимаю, как именно я буду передавать данные, которые мне нужны, между обоими серверами (нужно запрашивать данные из TCP и данные полезной нагрузки из UDP).