HeartbeatReceiver.java
上传用户:sy_wanhua
上传日期:2013-07-25
资源大小:3048k
文件大小:1k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

C/C++

  1. import java.io.*;
  2. import java.net.*;
  3. import java.util.*;
  4. class HeartbeatReceiver {
  5. //
  6. InetAddress multicastAddress = null;
  7. //
  8. int multicastPort = 0;
  9. //
  10.         MulticastSocket socket = null;
  11. //
  12. public HeartbeatReceiver (String Address, int Port) throws IOException {
  13. multicastPort = Port;
  14.         multicastAddress = InetAddress.getByName(Address);
  15.          socket = new MulticastSocket(multicastPort);
  16.     socket.joinGroup(multicastAddress);
  17. }
  18. //
  19. public String toString() {
  20. return "HeartbeatReceiver: " + multicastAddress.getHostName() + "#" + multicastAddress.getHostAddress() + ":" + multicastPort ;
  21. }
  22. //
  23. public void listeningForHeartbeat(VocalServer server) throws IOException {
  24. System.out.println( "Listening for heartbeats ... " );
  25. for ( ; ; ) {
  26.         DatagramPacket packet;
  27.     
  28.               byte[] buf = new byte[256];
  29.               packet = new DatagramPacket(buf, buf.length);
  30.               socket.receive(packet);
  31.               String receivedHeartbeat = new String(packet.getData());
  32. server.handleHeartbeat( packet );
  33. }
  34. }
  35. //
  36. protected void  finalize() {
  37. System.out.println( "Cardiac Arrest..." );
  38. if (socket == null) return;
  39. try {
  40.         socket.leaveGroup(multicastAddress);
  41.         socket.close();
  42. }
  43. catch (IOException e) {
  44. System.out.println( "Exception Thrown on Socket closen" );
  45. e.printStackTrace();
  46. }
  47. }
  48. }