parse_op.pl
上传用户:wzkunzhan
上传日期:2022-04-23
资源大小:2618k
文件大小:3k
源码类别:

模拟服务器

开发平台:

Visual C++

  1. #!/usr/bin/perl
  2. #use strict;
  3. #use Socket 'inet_ntoa';
  4. #use Sys::Hostname 'hostname';
  5. my $remote_ip=$ARGV[0];
  6. #my $local_ip= inet_ntoa(scalar gethostbyname(hostname() || 'localhost'));
  7. my $local_ip="local_host";
  8. for $side (sideA, sideB){
  9. open( LOGPPL, "<$side.ppl");
  10. $i=-1;
  11. foreach $line (<LOGPPL>){
  12. $i++;
  13. (@time[$i], @rtt[$i], @psent[$i], @plost[$i], @ptoo_late[$i], @djitter[$i]) = split(" ",$line);
  14. #print "$ime n";
  15. #print @time[$i], "t", @rtt[$i], "t", @psent[$i], "t", @plost[$i], "t", @ptoo_late[$i], "t",@djitter[$i], "n";
  16. @de[$i] = $rtt[$i]/2; #plota somente atraso na rede.
  17. }
  18. close (LOGPPL);
  19. $min_de = $ave_de =$max_de =@de[0];
  20. $min_loss = $ave_loss =$max_loss =@plost[0];
  21. $min_too = $ave_too =$max_too =@ptoo_late[0];
  22. $min_jitt = $ave_jitt =$max_jitt =@djitter[0];
  23. $total_de =$total_loss = $total_too = $total_jitt = 0;
  24. foreach $j (0..$i) {
  25. $total_de = $total_de + @de[$i];
  26. if ($max_de lt @de[$i]) {$max_de = @de[$i];}
  27. if ($min_de gt @de[$i]) {$min_de = @de[$i];}
  28. $total_loss = $total_loss + @plost[$i];
  29. if ($max_loss lt @plost[$i]) { $max_loss = @plost[$i];}
  30. if ($min_loss gt @plost[$i]) {$min_loss = @plost[$i];}
  31. $total_too = $total_too + @ptoo_late[$i];
  32. if ($max_too lt @ptoo_late[$i]) {$max_too = @ptoo_late[$i];}
  33. if ($min_too gt @ptoo_late[$i]) {$min_too = @ptoo_late[$i];}
  34. $total_jitt = $total_jitt + @djitter[$i];
  35. if ($max_jitt lt @djitter[$i]) {$max_jitt = @djitter[$i];}
  36. if ($min_jitt gt @djitter[$i]) {$min_jitt = @djitter[$i];}
  37. }
  38. if($total_de !=0) {$ave_de = $total_de/($i+1);} else {$ave_de=0;}
  39. if($total_loss !=0) {$ave_loss = $total_loss/($i+1);} else {$ave_loss = 0;}
  40. if($total_too !=0) {$ave_too = $total_too/($i+1);} else {$ave_too =0;}
  41. if($total_jitt !=0) {$ave_jitt = $total_jitt/($i+1);} else {$ave_jitt = 0;}
  42. open (MOS,"<sideA.mos");
  43. @MS =<MOS>;
  44. $mos = @MS[0];
  45. print "nTest Summary from $local_ip to $remote_ipn";
  46. print "=============================================nn";
  47. printf ("Delay(ms) - Min: %2.6ft",$min_de);
  48. printf ("Avg: %2.6ft",$ave_de);
  49. printf ("Max: %2.6fn",$max_de);
  50. printf ("Loss(pkts) - Min: %2.6ft",$min_loss);
  51. printf ("Avg: %2.6ft",$ave_loss);
  52. printf ("Max: %2.6fn",$max_loss);
  53. printf ("Jitter Buffer Discard(pkts) - Min: %2.6ft",$min_too);
  54. printf ("Avg: %2.6ft",$ave_too);
  55. printf ("Max: %2.6fn",$max_too);
  56. printf ("Jitter(ms) - Min: %2.6ft",$min_jitt);
  57. printf ("Avg: %2.6ft",$ave_jitt);
  58. printf ("Max: %2.6fn",$max_jitt); 
  59. printf ("MOS(1-5) - Avg: %2.6fn",$mos); 
  60. #change and remote ips
  61. $temp = $local_ip;
  62. $local_ip= $remote_ip;
  63. $remote_ip= $temp;
  64. }