2017-10-31 13 views
0

私は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、ウィンドウのホスティング、その他の第三者を使用する必要はありません。

答えて

関連する問題