У меня есть узел C ++ ROS, использующий ROSBridge для отправки тем ROS в виде строк JSON через TCP WebSocket через порт 9090. На том же компьютере у меня есть программа C # Unity, которая должна получить доступ к JSON и отправить некоторые свои собственные. Если я перенесу эту программу на другой компьютер, проблем не возникнет - я смогу получить доступ к порту 9090 и посмотреть JSON. Но если он находится на том же компьютере, что и хост ROSBridge, возникает конфликт с использованием того же порта. Таким образом, два приложения не могут взаимодействовать друг с другом на одном компьютере, но могут на разных компьютерах.
Так что я могу сделать? Должны ли порты совпадать и, следовательно, всегда конфликтовать, или, может быть, я могу каким-то образом заставить Процесс А отправлять на 9090, но получать на 9091, а Процесс Б - прямо противоположное или что-то в этом роде? Есть еще варианты? По сути, я пытаюсь заставить Unity участвовать в ROS-коммуникациях, но он не имеет встроенной поддержки для этого и, следовательно, обходного пути со строками JSON ROSBridge.