java multicast 예제

java multicast 예제

다음 테스트에서, 나는 어떤 특별한 목적을 위해 예약되지 않은 멀티 캐스트 IP 주소를 사용, 224.0.0.3 나는 컴파일 내 Windows XP 시스템에서 프로그램을 실행. 다음은 출력입니다: 이것은 Java에서 MulticastSocket 사용의 예입니다. 멀티캐스트 소켓은 그룹 구성원 자격을 기반으로 합니다. 멀티캐스트 소켓을 만들고 경계화한 후 joinGroup(InetAddress multiCastIPAddress) 메서드를 호출하여 멀티캐스트 그룹에 조인하면 해당 그룹에 전송된 모든 데이터그램 패킷이 이 소켓에 배달됩니다. 데이터그램 네트워크에서 멀티캐스트는 데이터 패킷을 다중 대상으로 전송합니다. 멀티캐스트의 장점은 공통 주소를 공유하는 호스트 그룹에 데이터를 보낼 수 있다는 것입니다. Multicast를 사용하지 않는 경우 각 호스트에 대해 데이터 패킷을 하나씩 보내야 합니다. 흥미로운 변화는 DatagramPacket을 생성하는 방법, 특히 데이터그램 패킷을 생성하는 데 사용되는 InetAddress 및 포트입니다. 이전 예제에서는 클라이언트에서 서버로 전송된 패킷에서 InetAddress 및 포트 번호를 검색했습니다. 서버가 클라이언트에 직접 회신해야 했기 때문입니다.

이제 서버는 여러 클라이언트를 처리해야 합니다. 따라서 이번에는 InetAddress와 포트 번호가 모두 하드 코딩됩니다. Java의 UDP 및 데이터그램에 대해 자세히 알아보려면 Java의 UDP 가이드를 참조하십시오. MS08-001 취약점과 멀티 캐스트 통신과의 관계에 대한 자세한 정보를 찾기 위해, 나는 주어진 멀티 캐스트 그룹에 가입하고 들어오는 메시지를 들을 수있는 매우 간단한 테스트 프로그램, MulticastListener.java를 썼다 : 이외에 unicast 및 멀티 캐스트, IPv6는 또한 패킷을 그룹의 모든 구성원에게 보낼 수 있지만 모든 구성원에게 보낼 필요는 없는 모든 캐스트를 지원합니다. IPv6에서는 멀티캐스트 지원이 필수로 이루어졌으며 방송에 대한 명시적인 개념은 없습니다. 이제 모든 브로드캐스트 기능을 일종의 멀티캐스팅으로 구현할 수 있도록 멀티캐스트가 확장되고 개선되었습니다. IPv4에서 범위 224.0.0 ~ 239.255.255.255범위의 모든 IP 주소를 데이터그램 패킷을 전송하는 멀티캐스트 주소로 사용할 수 있습니다. 멀티캐스트 IP 주소는 데이터그램 패킷의 원본 주소로 사용할 수 없습니다. 이 문서에서는 UDP 프로토콜을 사용하여 일대다 통신 유형의 개념을 살펴봤습니다.

우리는 자바에서 이러한 개념을 구현하는 방법의 예를 보았다. IPv4에서 224.0.0 ~239.255.255 사이의 모든 주소를 멀티캐스트 주소로 사용할 수 있습니다. 그룹을 구독하는 노드만 그룹에 전달된 패킷을 받습니다. 생성자 및 일부 멤버 변수 및 getNextQuote 메서드를 상속할 수 있도록 이 클래스를 QuoteServerThread의 하위 클래스로 만들었습니다. QuoteServerThread 포트 4445에 바인딩된 DatagramSocket을 만들고 견적 파일을 엽니다.