HeartbeatSender.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 HeartbeatSender {
  5. //
  6. InetAddress myAddress = null;
  7. //
  8. String     myPort;
  9. //
  10. int     myMissedHeartbeat = 0;
  11. //
  12. long     lastHeartbeat = 0;
  13. //
  14. boolean     active = false;
  15. //
  16. public static long heartbeatInterval;
  17. //
  18. public static int maxMissedHeartbeat;
  19. //
  20. public HeartbeatSender(InetAddress senderMulticastAddress, String port, byte[] heartbeatData ) {
  21. myAddress = senderMulticastAddress;
  22. myPort = port;
  23. receivedHeartbeat();
  24. }
  25. //
  26. public void incMissedHeartbeat() {
  27. myMissedHeartbeat++;
  28. if ( isDown() ) {
  29. if (active == true) {
  30. System.out.println (this + " ** DOWN ** ");
  31. active = false;
  32. }
  33. }
  34. }
  35. //
  36. public void receivedHeartbeat() {
  37. lastHeartbeat =  System.currentTimeMillis();
  38. myMissedHeartbeat = 0;
  39. if (active == false) {
  40. System.out.println (this + " ** UP **");
  41. }
  42. active = true;
  43. }
  44. public boolean isDown( ) {
  45. if ( ( lastHeartbeat + heartbeatInterval < System.currentTimeMillis() ) && (myMissedHeartbeat >=  maxMissedHeartbeat ) ) {
  46. return true;
  47. }
  48. else {
  49. return false;
  50. }
  51. }
  52. public String toString() {
  53. return "HeartbeatSender: " + myAddress.getHostName() + "#" + myAddress.getHostAddress() + ":" + myPort +
  54. ", MissedHeartbeat: " + myMissedHeartbeat  + " Last Heartbeat: " + lastHeartbeat;
  55. }
  56. }