2017-01-31 10 views
0

저는 DDS를 이해하고 배우려고합니다. OpenSplice DDS에 관한 튜토리얼을 여기저기서 읽었습니다. 거기에 저를 의아해하는 뭔가가 있습니다.DDS의 호스트에 연결 : 네트워킹이 있습니까?

이 튜토리얼에서 튜터는 8 페이지에서 "게시자와 구독자가 참가자를 자동으로 감지 할 수있는 어떤 종류의"Magic이 있음을 언급합니다.

하지만 다른 컴퓨터에 참가자가 있다면 어떻게해야합니까? 아니면 다른 나라에 있을까요?

게시자의 예를 살펴 촬영 :

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는 가입자), I 돈 사람들이 어떻게 원격으로 연결할 수 있는지 이해하지 못합니다. 다른 컴퓨터를 구독하려면 어떻게해야합니까? 어떻게하면 원격으로 작업 할 수있는 좋은 간단한 예제를 얻을 수 있습니까?

자세한 내용이나 세부 정보가 필요한지 물어보십시오.

답변

1

참가자는 UDP 멀티 캐스트를 통해 서로 연결합니다.이 내용은 표준에 설명되어 있으므로 마음껏 전체 이해를 위해 읽으십시오. 자유롭게 사용할 수 있습니다.

UDP만이 사양에 정의되어 있으므로 다른 연결 전략 (shmem, TCP, other)을 사용하는 경우 공급 업체에 따라 달라집니다. RTI 구현은 shmem을 통한 OpenSplice 구현과는 이야기하지 않습니다 (그러나 UDP 루프백을 통해 가능합니다).

알려진 UDP 포트로 시작하는 협상이 있습니다.

두 시스템이 동일한 서브넷에 있고 멀티 캐스트를 사용할 수있는 경우 표준에 설명 된 마술을 통해 연결됩니다. 여기서는 호환 가능한 도메인 ID, 주제, 유형 및 QoS가 있다고 가정합니다.

Really : 표준을 읽으십시오.

+0

안녕하세요, 저는 Stackoverflow에서 본 유일한 DDS 전문가입니다. 내 질문에 여기 좀 봐 : http://stackoverflow.com/questions/42023478/opensplice-dds-publish-until-some-timeout. 나는 3 주 동안 제출해야만하는 것을 가지고 있으며 나는 DDS에서 거의 초보자입니다. 감사! –