1

ポートは 5792 で、IP は 123.123.123.123 です。次のように、データを ip に送信できます。

$host = "tcp://123.123.123.123"; 
$port = 5792; 
$errstr = '';
$errno = '';

$fp = fsockopen($host, $port ,$errno, $errstr, 30); 
if (!$fp) {
  print 'COULD NOT CONNECT! <br />';
  echo "$errstr ($errno)<br />\n";
  die();
}
else {
  print 'SUCCESS!<br />'
}

送信も機能しているようです:

$message = 'hello';
fputs ($fp, $message );

データを受信するときに問題が発生します。

print fread($fp, 128);

これは以下を出力します:

hello

...画面に!言い換えれば、それは私が送っているものをエコーし​​ているということです。これで、すべてのメッセージが XML 要素内にカプセル化されていることがわかりました。この要素内にサービス要求を配置できます。これも XML 要素にカプセル化されています。

カプセル化された XML 要素は「ROOT」と呼ばれ、この中にサービス リクエスト リクエストを配置できます。達成しようとしている実際のサービス リクエストを「topUp」と呼びましょう。

  1. サービス要求「topUp」をカプセル化する ROOT と呼ばれるルート xml 要素があると仮定すると、この XML を文字列として送信する標準的な方法は何でしょうか?
  2. サーバーがあなたの言っていることを理解できないときはいつでもあなたのリクエストをエコーすることを期待するのは普通ですか?
4

1 に答える 1

1

request コマンドの XML 構造を理解しておくことが重要です。いずれにせよ、そのような方法でもコマンドを送信できます

 $message = "<root>"."\n";
 $message .= "<request>topUp</request>"."\n";
 $message .= "</root>"."\n";
 fputs ($fp, $message );

ただし、定義済みのリクエスト構造を送信しない限り、必要な結果が得られない場合があります。

于 2012-08-02T09:21:46.940 に答える