Я бы создал один сокет для каждого интерфейса и привязал бы его явно к интерфейсу вместо использования INADDR_ANY
.
Проблема с использованием INADDR_ANY
заключается в том, что, как только вы получили дейтаграмму, сокет, вероятно, неявно привязан к интерфейсу, на который поступила дейтаграмма, ИМХО, это должно быть так, чтобы вы могли отправить ответ отинтерфейс, на который поступила датаграмма ...