이 페이지는 기계 번역을 사용하여 번역되었습니다. 영어 원문을 보려면 여기를 클릭하십시오.
사용자 데이터그램 프로토콜을 사용하여 멀티캐스트 데이터 패킷 송수신
이 예제는 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 인스턴스인 uReceiver1와 uReceiver2는 LocalPort 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");
이는 MulticastGroup 및 EnableMulticast 속성에 반영됩니다.
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);
멀티캐스트 데이터 수신
멀티캐스트 수신기 uReceiver1 및 uReceiver2가 데이터를 수신하는지 확인하십시오. 이 데이터를 MATLAB에서 읽어오세요.
수신기가 멀티캐스트 패킷을 수신했는지 확인하십시오. uReceiver1가 데이터그램 유형 udpport 인스턴스인 경우 데이터를 데이터그램으로 수신합니다. uReceiver2가 바이트 유형 udpport 인스턴스인 경우 데이터를 원시 바이트로 수신합니다.
uReceiver1Count = uReceiver1.NumDatagramsAvailable
uReceiver1Count = 1
uReceiver2Count = uReceiver2.NumBytesAvailable
uReceiver2Count = 5
첫 번째 수신기에서 데이터를 문자열로 읽으며, 읽을 데이터그램 수를 지정합니다.
data1 = read(uReceiver1,uReceiver1Count,"string");data1는 udpport.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