2010-04-27 3 views
0

우리는 java에서 socket.send (packet) 함수를 사용하여 주어진 포트에 "패킷"을 보냅니다. 제 문제는 UDP 프로토콜을 사용하여 시스템을 종료하는 데 패킷을 보내야한다는 것입니다. send() 함수의 문제점은 먼저 호스트 IP가 멀티 캐스트인지 여부를 확인하는 것입니다. 이제 내 LAN은 브로드 캐스트 유형입니다. 그래서 나는 문제는이 기능을 사용하고 있습니다. 누구든지 내게 줄 수 있습니까?java를 사용하여 종료 시스템에 브로드 캐스트하는 방법은 무엇입니까?

+0

무엇이 문제입니까? –

답변

0

Java에서 udp 패킷을 보내는 방법을 알고 계십니까?

먼저 네트워크에서 브로드 캐스팅을 사용하도록 설정해야합니다.

그런 다음 모든 서버는 동의 된 멀티 캐스트 주소에 가입해야합니다.

InetAddress address = InetAddress.getByName("230.0.0.1"); 
MulticastSocket socket = new MulticastSocket(12345); 
socket.joinGroup(address); 

시스템 종료를 활성화하려면 동의 한 메시지 (예 : "죽습니다")를 멀티 캐스트 주소로 보냅니다.

DatagramPacket packet = new DatagramPacket(buf, buf.length); 
socket.receive(packet); 
String received = new String(packet.getData(), 0, packet.getLength()); 

해당 메시지를 수락하면 서버가 시스템 종료 흐름을 시작해야합니다.

+0

나는 유감스럽게 생각하지만 당신이 내 문제를 분명히 생각하지 못했다고 생각합니다. 참조하십시오. 나는 깨어났다. 그래서 나는 시스템을 종료해야하지만 깨울 필요가 없다. 이제 문제는 ... send() 함수는 멀티 캐스트에서만 작동합니다. 이고 내 LAN은 브로드 캐스트 유형입니다. 이 send() 함수가 작동하지 않습니다. – user304017

+0

우선, 방송은 아무 관련이 없습니다. * 멀티 캐스트 *는 네트워크 * 라우터 *에서 사용할 수 있어야합니다. 두 번째로 OP는 멀티 캐스팅을 전혀하지 않기 때문에 대답은 부적합합니다. – EJP

관련 문제