php - 创建TCP套接字连接并通过XML请求发送以便获得XML响应?

标签 php xml sockets fsockopen

端口为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”。
  • 假设有一个名为ROOT的根xml元素,该元素封装了服务请求“topUp”,将XML提交为字符串的标准方法是什么?
  • 正常情况下,期望服务器在无法理解您在说什么时回显您的请求是正常的吗?
  • 最佳答案

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

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

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

    关于php - 创建TCP套接字连接并通过XML请求发送以便获得XML响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11773769/

    相关文章:

    php - 如何提高 PHP 中的 MySQL 连接时间?

    php - SQL 结果在 Foreach (PHP) 中无法查找和匹配

    python - 定义一个 xml 来表示图的邻接列表?

    c++ - 如何在 C++ 中使用套接字?

    java - 在JAVA客户端/服务器应用程序中,我应该在通信接口(interface)的哪一部分存储实例变量?

    php - Wkhtmltopdf 中的分页符

    java - 应该断言保留在测试版本中

    c# - 如何使用 Unity 3D 将数据保存到 Google SpreadSheet

    c++ - Tinyxml2 根集属性

    java - 通过套接字定期查询客户端更新 - 重用端口