2

最近、サーバーからデータを取得するようになりました。例えば、CoD 4 サーバーから。Ok?

次のスクリプトは、サーバーにステータスを問い合わせることができます。つまり、サーバーの設定 (マップ、タイトル) とプレイヤーとそのスコアです。ここで問題は、fwrite 関数でハンドシェイクを使用することです。これらは何を意味するのでしょうか。また、もしあれば、どうすればより多くの情報を取得できますか?

「\xFF\xFF\xFF\xFFgetstatus\x00」を使用して CoD 4 サーバーとハンドシェイクしていますが、プレイヤーの名前、スコア、および ping しか取得していません。必要なのは、スコア、キル、デス、アシストです。ポイントは、これらのオプション/データが利用可能で、手に入れることができるかどうかです。私は多くのことを試しましたが、他の方法で機能させることはできません。

他のクラスから書き直された現在のスクリプト:

set_time_limit(5);
$socket = fsockopen('udp://ip:port', 'port', $error, $errorStr, 3);
fwrite($socket, "\xFF\xFF\xFF\xFFgetstatus\x00");
$data = fread($socket, 4096);
fclose($socket);

これにより多くのデータが得られますが、十分ではありません。私の考えは、Left 4 Dead サーバーにクエリを実行することですが、データを取得することさえできないようです。$socket を出力すると、リソース ストリームが得られます。

何か案が?

4

1 に答える 1

1

どうですか

while( $data = fread( $socket, 4096 ) ) {
    var_dump( $data ); // or something to test output
    ...
}
于 2012-08-05T12:25:24.547 に答える