Подключение к хосту в DDS: есть ли вообще сеть?

Я пытаюсь понять DDS и изучить его. Я тут и там читал учебники по OpenSplice DDS, и там меня что-то удивляет.

В этом уроке тьютор упоминает, что на странице 8 есть какая-то «магия», когда издатель и подписчик разъединяются, когда участники автоматически обнаруживаются.

Но что, если у меня есть участник на другом компьютере? Или, может быть, в другой стране?

Взгляните на этот пример издателя:

dds::Topic<TempSensorType> tsTopic("TempSensorTopic");
dds::DataWriter<TempSensorType> dw(tsTopic);
TempSensorTypets = {1, 26.0F, 70.0F, CELSIUS};
dw.write(ts);

и этот пример подписчика:

dds::Topic<TempSensorType> tsTopic("TempSensorTopic");
dds::DataReader<TempSensorType> dr(tsTopic);
dds::SampleInfoSeq info;TempSensorSeq data;
while (true)
{   dr.read(data, info);
for (inti =0; i < data.length(); ++i)
std::cout << data[i] << std::endl;sleep(1);
}

а также этот полный рабочий пример обоих (tspub.cpp является издателем, и tssub.cpp является подписчиком), я не понимаю, как люди могли подключиться удаленно. Как я могу подписаться на другую машину? Как я могу заставить этот хороший и простой пример работать удаленно?

Пожалуйста, спросите, если вам требуется дополнительная информация или детали.

0

Решение

Участники соединяются друг с другом посредством многоадресной рассылки UDP — имейте в виду, что это описано в стандарте, поэтому для полного и полного понимания прочитайте это. Это свободно доступно.

В спецификации определен только UDP, поэтому, если они используют альтернативную стратегию соединения (shmem, TCP, другое), то это будет зависеть от поставщика. Реализации RTI не общаются с реализациями OpenSplice через shmem (но они могут через петлю UDP).

Существует согласование, которое начинается с известных портов UDP.

Если две системы находятся в одной подсети и имеют многоадресную рассылку, они будут подключаться с помощью магии, описанной в стандарте. Это предполагает, что они имеют совместимые идентификаторы доменов, темы, типы и QoS.

Действительно: прочитайте стандарт.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]