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