2017-01-31 2 views
0

Я пытаюсь понять DDS и изучить его. Я читал учебники здесь и там о OpenSplice DDS, и меня кое-что озадачило.Подключиться к ведущему в 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); 
} 

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

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

ответ

1

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

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

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

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

Действительно: ознакомьтесь со стандартом.

+0

Эй, ты единственный эксперт по DDS, который я видел в Stackoverflow. Не возражаете взглянуть на мой вопрос здесь: http://stackoverflow.com/questions/42023478/opensplice-dds-publish-until-some-timeout. У меня есть кое-что, что я должен представить, как через 3 недели, и я едва начинаю в DDS. Благодаря! –