Мне нужен сервер UDP, который может общаться со многими клиентами.
Мое нынешнее мышление
- открыть сокет
- привязка к порту
- recvfrom клиента
- вилка
- child: обработать сообщение, открыть новый сокет и отправить клиенту
- родитель: перейдите к шагу 3
Сервер отвечает клиенту на том же порту, к которому подключен клиент, но со случайного порта.
Я реализовал это, и с моим тестовым клиентом это работает.
Однако настоящий клиент написан кем-то другим, где-то еще. (Это встроенная система)
Его клиент ожидает ответа от того же порта, на который он отправил сообщение. Единственный способ, которым я могу это сделать - использовать тот же сокет, который работает.
Однако меня беспокоит, что это вызовет проблемы, если более одного клиента попытается подключиться одновременно.
Как это сделать?