File "udp_t.php"
Full path: /www/beacon/udp_t.php
File size: 2.12 KiB (2167 bytes)
MIME-type: text/x-php
Charset: utf-8
<?php
//引数を取得
$port = $argv[1];
//$port = 51237;
print $port ."\n";
$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
socket_bind($socket, '0.0.0.0', $port);
//CSV出力先
//ディレクトリ
//$dir = "/www/upfile/Position of diver/";
$dir = "/www/beacon/";
$log_output_dir = "";
//CSV出力先
switch($port)
{
case 51250:
$output[0] = $dir."diver1.csv";
$log_output_dir = $dir."diver1_log/";
break;
case 51242:
$output[0] = $dir."diver2.csv";
$log_output_dir = $dir."diver2_log/";
break;
case 51243:
$output[0] = $dir."diver3.csv";
$log_output_dir = $dir."diver3_log/";
break;
case 51244:
$output[0] = $dir."diver4.csv";
$log_output_dir = $dir."diver4_log/";
break;
case 51245:
$output[0] = $dir."diver5.csv";
$log_output_dir = $dir."diver5_log/";
break;
case 51246:
$output[0] = $dir."diver6.csv";
$log_output_dir = $dir."diver6_log/";
break;
}
if($output[0])
{
for (;;) {
socket_recvfrom($socket, $buf, 1024, 0, $remoteAddr, $remotePort);
// $buf_ = str_replace(array("\r\n", "\r", "\n"), '', $buf);
// $data_split = explode(",",$buf);
//データを分解して、Zの値を再計算
// $data_split[3] = $data_split[3] * (-1);
// $buf = $data_split[0] ."," .$data_split[1] ."," .$data_split[2] ."," .$data_split[3] ."," .$data_split[4] ."," .$data_split[5] ."," .$data_split[6];
$fp1 = fopen($output[0],"w");
fwrite($fp1,$buf);
fclose($fp1);
echo "リモートアドレス $remoteAddr のポート $remotePort から $buf を受信しました" . PHP_EOL;
//1時間ごとにログを保存
// $unix_time = strtotime($data_split[0]);
$log_file_name = date("YmdH" ,time()) .".csv";
$log_output_path = $log_output_dir .$log_file_name;
if (file_exists($log_output_path))
{
$fp_log = fopen($log_output_path,"a");
fwrite($fp_log,$buf ."\n");
fclose($fp_log);
}
else
{
$fp_log = fopen($log_output_path,"w");
fwrite($fp_log,$buf ."\n");
fclose($fp_log);
}
}
}
/*
書き換え後、コマンド画面から以下のコマンドを張り付けて実行
nohup php ./udp.php < /dev/null > batchout.log 2> batcherr.log &
*/
?>