创建TCP套接字连接并通过XML请求进行发送,以获得XML响应


Creating a TCP socket connection and sending through a XML request in order to get an XML response?

端口为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. 当服务器无法理解您所说的内容时,期望它回复您的请求是正常的吗

了解请求命令的XML结构至关重要。在任何情况下,你都可以用这种方式发送命令太

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

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