주요 콘텐츠

이 페이지는 기계 번역을 사용하여 번역되었습니다. 영어 원문을 보려면 여기를 클릭하십시오.

사용자 데이터그램 프로토콜을 사용하여 멀티캐스트 데이터 패킷 송수신

이 예제는 udpport를 사용하여 멀티캐스트 데이터를 송수신하는 방법을 보여줍니다.

udpport 인스턴스 생성

멀티캐스트 데이터를 전송하기 위해 udpport 인스턴스를 생성합니다.

uSender = udpport()
uSender = 
  UDPPort with properties:

     IPAddressVersion: "IPV4"
            LocalHost: "0.0.0.0"
            LocalPort: 62055
    NumBytesAvailable: 0

  Show all properties, functions

이 멀티캐스트 데이터를 수신하기 위해 여러 개의 udpport 인스턴스를 생성하십시오. 모든 udpport 인스턴스가 동일한 LocalPort에 바인딩되도록 하고, EnablePortSharing를 true로 설정하십시오. 이 예시에서 udpport 인스턴스인 uReceiver1uReceiver2LocalPort 3030에 바인딩됩니다. uReceiver1는 데이터그램 유형인 udpport 인스턴스이며, uReceiver2는 바이트 유형인 udpport 인스턴스입니다.

uReceiver1 = udpport("datagram", "LocalPort", 3030, "EnablePortSharing", true)
uReceiver1 = 
  UDPPort with properties:

         IPAddressVersion: "IPV4"
                LocalHost: "0.0.0.0"
                LocalPort: 3030
    NumDatagramsAvailable: 0

  Show all properties, functions

uReceiver2 = udpport("LocalPort", 3030, "EnablePortSharing", true)
uReceiver2 = 
  UDPPort with properties:

     IPAddressVersion: "IPV4"
            LocalHost: "0.0.0.0"
            LocalPort: 3030
    NumBytesAvailable: 0

  Show all properties, functions

동일한 컴퓨터에서 여러 MATLAB 인스턴스 간 통신의 경우, 발신자와 수신자를 서로 다른 MATLAB® 인스턴스에 생성할 수도 있습니다.

멀티캐스트 수신기 준비

configureMulticast 함수를 사용하여 udpport 멀티캐스트 수신기에 멀티캐스트를 설정하십시오. 멀티캐스트 주소 그룹 "226.0.0.1"에 가입하십시오. uSender가 이 멀티캐스트 주소 그룹으로 데이터를 전송할 때, 이 주소에 구독된 모든 udpport 인스턴스가 멀티캐스트 데이터를 수신합니다.

configureMulticast(uReceiver1, "226.0.0.1");
configureMulticast(uReceiver2, "226.0.0.1");

이는 MulticastGroupEnableMulticast 속성에 반영됩니다.

uReceiver1.MulticastGroup
ans = 
"226.0.0.1"
uReceiver1.EnableMulticast
ans = logical
   1

uReceiver2.MulticastGroup
ans = 
"226.0.0.1"
uReceiver2.EnableMulticast
ans = logical
   1

멀티캐스트 데이터 전송

uSender 인스턴스는 "hello"를 문자열 데이터 유형으로 멀티캐스트 주소 그룹 "226.0.0.1"과 포트 3030으로 전송합니다.

write(uSender,"hello","string","226.0.0.1",3030);

멀티캐스트 데이터 수신

멀티캐스트 수신기 uReceiver1uReceiver2가 데이터를 수신하는지 확인하십시오. 이 데이터를 MATLAB에서 읽어오세요.

수신기가 멀티캐스트 패킷을 수신했는지 확인하십시오. uReceiver1가 데이터그램 유형 udpport 인스턴스인 경우 데이터를 데이터그램으로 수신합니다. uReceiver2가 바이트 유형 udpport 인스턴스인 경우 데이터를 원시 바이트로 수신합니다.

uReceiver1Count = uReceiver1.NumDatagramsAvailable
uReceiver1Count = 1
uReceiver2Count = uReceiver2.NumBytesAvailable
uReceiver2Count = 5

첫 번째 수신기에서 데이터를 문자열로 읽으며, 읽을 데이터그램 수를 지정합니다.

data1 = read(uReceiver1,uReceiver1Count,"string");

data1udpport.datagram.Datagram 객체입니다. 수신된 데이터를 확인하십시오

data1.Data
ans = 
"hello"

두 번째 수신기에서 데이터를 문자열로 읽으며, 읽을 데이터의 바이트 수를 지정합니다.

data2 = read(uReceiver2,uReceiver2Count,"string")
data2 = 
"hello"

구독 취소 및 삭제

멀티캐스트 주소 그룹에서 수신 거부합니다.

configureMulticast(uReceiver1, "off");
configureMulticast(uReceiver2, "off");

udpport 인스턴스를 제거하십시오.

clear uReceiver1
clear uReceiver2
clear uSender