• 締切済み

phpでパケットのメッセージフォーマット注出

今C言語からUDPでパケットを送って、phpで取得することをしています。 その際、phpでパケットのフォーマット通りにデータを取得する方法が分かりません。 var_dumpで表示させると、配列で表示されるのかと思いきやString型でもらっています。 classで各フォーマットに対応する変数を用意して、インスタンスをつくり、そこに入れようとしていたのですが、うまいことできませんでした。 何かヒントとなるようなことありますでしょうか?

みんなの回答

noname#244856
noname#244856
回答No.2

「雑な感じで既存のコードを流用しても安全でそこそこ汎用性のあるフォーマット」としてはJSONが優秀だと思います。 PHP側 http://www.php.net/manual/ja/function.json-decode.php C言語側 http://www.digip.org/jansson/ ちなみにPHP側でlistenする場合、生のsocket関数を使うよりそれらをラップしたstream関数のほうがお勧めです。以下のページの例2を参考にしてください。 http://www.php.net/manual/ja/function.stream-socket-server.php

  • agunuz
  • ベストアンサー率65% (288/438)
回答No.1

>配列で表示されるのかと思いきやString型でもらっています。 string型を自分でparseするしかないです。 $_SERVER['QUERY_STRING']から$_GETに展開されるとかはphp側で面倒みてくれますが、それ以外の「フォーマット」は自分で展開するのが基本です。 >classで各フォーマットに対応する変数を用意して、インスタンスをつくり、 >そこに入れようとしていたのですが、うまいことできませんでした。 どのように書いていて「うまいことできません」なのでしょうか?文字列を任意のメソッド(もちろんコンストラクタでもいい)に渡して、そのメソッドで展開して変数にセットしていくだけですよね。

関連するQ&A