В ASIO возможно ли создать еще один сокет, имеющий тот же порт источника, что и другой сокет?
Мое приложение сервера UDP вызывает receive_from, используя порт 3000. Он передает пакет рабочему потоку, которыйотправит ответ (в настоящее время использует динамический исходный порт).
Сокет в другом потоке создается следующим образом:
udp::socket sock2(io_service, udp::endpoint(udp::v4(), 0));
И отвечает на исходный запрос, используя sender_endpoint, сохраненный сисходный пакет.
То, что я хотел бы сделать, это ответить клиенту, используя тот же порт источника, который прослушивает сервер.Но я не понимаю, как это можно сделать.Я получаю исключение, если я пытаюсь использовать этот говорящий адрес.Можно ли сделать то, что я спрашиваю?Причина, по которой я хочу, заключается в том, что если я использую динамические порты, это означает, что клиенты должны добавить специальные правила брандмауэра в окнах, чтобы разрешить чтение ответных пакетов.Я обнаружил, что если в ответе порт источника совпадает, брандмауэр Windows разрешит ему вернуться обратно.