⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 analyze.perl

📁 MAODV代码和安装程序 hen nan找啊
💻 PERL
字号:
#!/usr/local/bin/perl$totalReceivers = 10;$totalNodes = 50;$totalPid = 20000;($traceFile, $outFile) = @ARGV;$outFile = ">".$outFile;open (MYFILE, $traceFile) || die "cannot open the trace file\n";open (PACKET, $outFile) || die "cannot open the output file\n";$i = 0;while($i < $totalPid){  $send[$i] = 0;  $sendTime[$i] = 0;  $j = 0;  while($j<$totalNodes){    $recv[$i][$j] = 0;    $latency[$i][$j] = 0;    $j++;  }  $i++;}while (<MYFILE>){  $current_time = findTime($_);  if (m/cbr/ && m/^s/ && m/AGT/) {    $id = findPacketId($_);    $send[$id] = 1;    $sendTime[$id] = $current_time;  }  elsif(m/cbr/ && m/^r/ && m/RTR/){    $id = findPacketId($_);    $node = findNodeId($_);    if ($recv[$id][$node] == 0){      $recv[$id][$node] = 1;      $latency[$id][$node] = $current_time - $sendTime[$id];    }  }}print "almost done!\n";	close (MYFILE);$totalSend = 0;$totalRecv = 0;$totalLatency = 0;$i = 0;while ($i < $totalPid){  if ($send[$i] == 1){    $totalSend++;    $j = $totalNodes - $totalReceivers;    if ($j == 0 ) {$j = 1;}    while ($j < $totalNodes){      if ($recv[$i][$j] == 1){        $totalRecv++;        $totalLatency += $latency[$i][$j];      }      $j++;    }  }  $i++;}print PACKET "The number of receivers is : ", $totalReceivers, "\n";print PACKET "The number of sent-out packets is: ", $totalSend, "\n";print PACKET "The number of received packets is: ", $totalRecv, "\n";if ($totalReceivers != $totalNodes) {    print PACKET "Ratio is ", $totalRecv/($totalSend*$totalReceivers), "\n";}else {  print PACKET "Ratio is ", $totalRecv/($totalSend*($totalReceivers - 1)), "\n";}print PACKET "Latency is ", $totalLatency/$totalRecv, "\n";close (PACKET);sub findPacketId {	@fields = split(/ /, $_[0]);	$pid = $fields[6];	if ($fields[4] != "") {$pid = $fileds[5];} 	return $pid;}sub findTime {	@fields = split(/ /, $_[0]);	$theTime = $fields[1];	return $theTime;}sub findNodeId {  $startPo = index($_[0], "_")+1;  $endPo = index($_[0], "_", $startPo);  $len = $endPo - $startPo;  $node = substr($_[0], $startPo, $len);  return $node;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -