이 페이지는 기계 번역을 사용하여 번역되었습니다. 영어 원문을 보려면 여기를 클릭하십시오.
사용자 데이터그램 프로토콜을 사용하여 멀티캐스트 데이터 패킷 송수신
R2026b이 예제는 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