私はGPSトラッカーデバイスを持っています.GPSデータを受信するためにGPSデバイスにTCP/IPとポートを設定済みです。 GPSデータを受信する。私は最初のログインパケットを読み取ることができるが、それに応答して、私のサーバはさらなるデータを受け取るために応答しなければならない。私は以下のPHPソケットスクリプトを使用してデータを読み書きしているが、どんな助けもappereciatedされるでしょう!GT06 GPSデバイスのログインパケットに応答データを送信して、サーバーにさらにデータを送信します。
<?php
$host = "**.*.***.***";
$port = ****;
$mysock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_bind($mysock,$address, $port) or die('Could not bind to address');
socket_listen($mysock, 5);
$client = socket_accept($mysock);
$message = "7878050100002dc20d0a";
// $message is the response data which i have to send from my server to
// gps device to receive further more detailed data.
// $msg = hex2bin($message);
$output = $msg;
writeToFile('gprs.log', $output);
$output = hex2bin(getCrc16($message));
socket_write($client, $output);
echo "Sent and Received data successfully";
socket_close($client);
socket_close($mysock);
function getCrc16($pData){
$crctab16 = array(0X0000, 0X1189, 0X2312, 0X329B, 0X4624, 0X57AD,
...... 0X1EF1, 0X0F78,);
$hexdata = pack('H*',$pData);
$nLength = strlen($hexdata);
$fcs = 0xFFFF;
$pos = 0;
while($nLength > 0){
$fcs = ($fcs >> 8)^$crctab16[($fcs^ord($hexdata[$pos])) & 0xFF];
$nLength--;
$pos++;
}
return ~$fcs;
}
function writeToFile($strFilename, $strText) {
if($fp = @fopen($strFilename,"w")) {
$contents = fwrite($fp, $strText);
fclose($fp);
return true;
} else {
return false;
}
}
?>
注:advance.Followingのおかげで、スクリプトである私がOpenGTs、ウィンドウのホスティング、その他の第三者を使用する必要はありません。