Network programming assignment for University
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 
 

51 linhas
1.5 KiB

  1. package net.hoo2.auth.vmodem;
  2. class Echo {
  3. static final int ECHO_DURATION_DEFAULT = 240;
  4. static final int ECHO_BUFFER_SIZE = 256;
  5. static final String ECHO_BEGIN = "PSTART";
  6. static final String ECHO_END = "PSTOP";
  7. private Com com_;
  8. private Log log_;
  9. private Transaction transaction_;
  10. private int duration_;
  11. private byte[] code_;
  12. Echo (Com com, Log log, byte[] code, int duration) {
  13. com_ = com;
  14. log_ = log;
  15. duration_ = duration;
  16. transaction_= new Transaction(null, new byte[ECHO_BUFFER_SIZE]);
  17. code_ = code;
  18. }
  19. void caption (byte[] code) {
  20. String line;
  21. line = "Running ECHO with: " + new String(code);
  22. log_.write(line, true);
  23. transaction_ = com_.request (transaction_, null, null, null, false);
  24. line = new String(transaction_.getResponse());
  25. log_.out(line);
  26. }
  27. void run () {
  28. long start;
  29. long now;
  30. String line;
  31. start = System.currentTimeMillis();
  32. do {
  33. transaction_ = com_.request(transaction_, code_, ECHO_BEGIN.getBytes(), ECHO_END.getBytes(), false);
  34. line = new String(transaction_.code) + ": "
  35. + new String(transaction_.getResponse())
  36. + " Tr= " + (transaction_.arrival - transaction_.departure) + " [msec]";
  37. log_.write(line);
  38. now = System.currentTimeMillis();
  39. } while (now - start < duration_*1000);
  40. }
  41. }