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. 假设有一个名为 ROOT 的根 xml 元素,它封装了服务请求“topUp”,那么将该 XML 作为字符串提交的标准方法是什么?
  2. 当服务器无法理解您在说什么时,期望服务器回应您的请求是否正常?
4

1 回答 1

1

了解请求命令的 XML 结构至关重要。无论如何,您也可以通过这种方式向您发送命令

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

但是,除非您发送定义的请求结构,否则您可能不会得到您想要的结果。

于 2012-08-02T09:21:46.940 回答