를 실행 표시하려면이 응용 프로그램에 대해 나에게, 당신은 설정에 항상 실행하는 서비스 나 프로그램이 필요합니다 다른 논리를 말해 백그라운드에서. 왜 누가 설치했는지 확인해야합니까?
실행 중인지 확인하려면 프로그램에서 아래에 설명 된 코드를 실행하면됩니다.
서버의 경우 다음과 같은 스레드를 실행해야합니다.
class MultiCastServerThread extends Thread {
protected DatagramSocket socket = new DatagramSocket();
protected String multicastGroupId = "224.0.0.224";
protected long delay = 1000l;
protected int port = 2244;
public MultiCastServerThread() throws IOException {
super("SpeakServerThread");
}
public void run() {
InetAddress group = InetAddress.getByName(multicastGroupId);
while (true) {
try {
byte[] buf = new byte[256];
buf = "Message".getBytes();
DatagramPacket packet = new DatagramPacket(buf, buf.length, group, port);
socket.send(packet);
sleep(delay);
}catch (InterruptedException e){
}catch (IOException e) {
e.printStackTrace();
socket.close();
break;
}
}
}
}
매초마다 "메시지"메시지를 멀티 캐스트 그룹 224.0.0.224
에 멀티 캐스트합니다.
클라이언트의 경우 다음과 같은 메소드를 호출해야합니다.
final String MULTICAST_GROUP = "224.0.0.224";
final int PORT = 2244;
public String getMultiCast() {
MulticastSocket socket = new MulticastSocket(PORT);
InetAddress address = InetAddress.getByName(MULTICAST_GROUP);
socket.joinGroup(address);
DatagramPacket packet;
byte[] buf = new byte[256];
packet = new DatagramPacket(buf, buf.length);
socket.receive(packet);
String rtn = new String(packet.getData());
socket.leaveGroup(address);
socket.close();
return rtn;
}
그것은 멀티 캐스트 그룹 224.0.0.224
에서 수신하고 즉시이 패킷을 수신 한 것처럼 소켓 닫히고 패킷 바이트 배열에서 문자열을 반환한다.
그러나 socket.recieve()
은 차단 호출이므로 요구 사항에 따라 클라이언트 메서드를 Separate 스레드 또는 작업에서 호출하고 일부 시간 초과 메커니즘을 사용해야합니다. 귀하의 시스템에 대한 자세한 내용이 없으면 무엇이 최선인지 말하기가 어렵습니다.
이 프로그램을 작성하는 방법을 알려주십시오. – Kundan
지금까지 프로그램을 작성한 방법,보고있는 문제점, 관련 코드 및 수행하려고 시도한 내용을 알려주십시오. 문제를 해결하십시오. –