Можно ли получить две отдельные программы для обмена данными на одном компьютере (только с одним движением) через UDP через localhost/127... путем совместного использования одного и того же порта #?
Мы работаем над студенческим проектом, в котором нам нужно отправить UDP-пакеты, содержащие некоторую телеметрию между двумя компьютерами. Программа, генерирующая эти пакеты, является проприетарной, но я сама работаю над программой-получателем с С#, используя System.Net.Sockets.UdpClient и System.Net.IPEndPoint.
Это прекрасно работает во время наших групповых встреч, когда у нас есть несколько компьютеров, на которых мы можем запускать две программы отдельно. Но это не очень полезно, когда я дома и пытаюсь расширить программу обработки телеметрии, поскольку у меня только один компьютер (мне нужен фид для тестирования программы обработки). Я не могу установить программу на любом из школьных компьютеров.
Когда я пытаюсь запустить обе программы на своем компьютере в одно и то же время (начиная с последней моей программы), я получаю SocketException, говорящий, что разрешено только одно использование каждого порта. Это заставляет меня поверить, что какой-то способ обмена портом должен быть каким-то образом (хотя имеет смысл, что только одна программа может использовать порт на компьютере в любой момент времени, у меня нет проблем с одновременным запуском нескольких интернет-браузеров (и я предположим, что они используют порт 80 для http)).
REEDIT EDIT:
sipwiz был прав, и благодаря Kalmi для указателя на UdpClient.Client.Bind(). В то же время мы рассматриваем возможность использования другой программы, которая генерирует аналогичные пакеты и с которыми мы можем обмениваться портами на одном компьютере, используя мой первый (хотя и наивный) подход с привязкой клиента UDP в ctor. Извините за отмену ответа, sysrqb.