Я пишу C ++ приложение MyMasterApp (Windows & Mac), который слушает кучу информации, поступающей с разных компьютеров и приложений. (OSC через UDP)
То есть
MyMasterApp прослушивает данные отслеживания, поступающие из нескольких приложений Tracker (которые могут работать или не работать на одном компьютере, но в одной проводной сети).
Он также прослушивает данные об ориентации, поступающие из ряда других приложений (работающих на мобильных устройствах, на том же Wi-Fi).
Все приложения отправляются с частотой 30 Гц.
Так:
/ Tracker / Position1 / [f] [f] [f]
/ Tracker / Position2 / [f] [f] [f]
/ Tracker / Position3 / [f] [f] [f]
/ Мобильный / Ориентация1 / [f] [f] [f] [f]
/ Мобильный / Ориентация2 / [f] [f] [f] [f]
/ Мобильный / Ориентация3 / [f] [f] [f] [f]
Мне интересно, есть ли разница (в производительности сети, коллизиях и т. Д.), Если:
MyMasterApp должен просто прослушивать все сообщения на порту 8000, а все приложения Tracker и мобильные приложения отправлять на порт 8000
против
MyMaster прослушивает сообщения Tracker на порту 8000 и мобильные сообщения на порту 9000.
Оба варианта работают нормально, мне просто интересно, есть ли какое-то преимущество в производительности по сравнению с другим, или даже практическое правило относительно того, какой из них использовать. Есть ли теоретические или зарегистрированные практические преимущества одного над другим? Или различия незначительны?
У меня есть связанный вопрос производительности сети о том же проекте в Большие пакеты многоадресной рассылки содержат всю информацию для нескольких клиентов против отдельных пакетов для целевых клиентов
Единственное реальное различие заключается в вашем коде: легче ли декодировать разные протоколы с использованием разных сокетов или эти издержки незначительны.
Других решений пока нет …