【发布时间】:2017-11-27 07:58:20
【问题描述】:
我正在尝试通过 TCP\IP(套接字)连接将 XML 发送到服务器。
我的连接正常。发送部分是问题。
见下文;
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
$host = "xx.xxx.xx.xxx";
$port = xxxx;
// create socket
$socket = socket_create(AF_INET, SOCK_STREAM, 0) or die("Could not create socket\n");
// connect to server
$result = socket_connect($socket, $host, $port) or die("Could not connect to server\n");
if($result === true){
echo 'connected';
}
$sendVendRequest='
<ipayMsg client="SAFEPAY" term="00001" seqNum="0" time=" '.date('Y-m-d H: i: s').' +0200">
<elecMsg ver="2.44">
<vendReq>
<ref>319155500001</ref>
<amt cur="KSh">1000</amt>
<numTokens>1</numTokens>
<meter>A12C3456789</meter>
<payType>cash</payType>
</vendReq >
</elecMsg>
</ipayMsg>';
$vendRequestXml=simplexml_load_string($sendVendRequest) or die("Error: could not create an object");
// print_r($vendRequestXml);
socket_write($socket, $sendVendRequest, strlen($sendVendRequest)) or die("Could not send data to server\n");
发送部分失败。它加载直到超时。我怀疑我错误地发送了请求。请有人指导我如何实现这一点。
【问题讨论】:
-
你创建了tcp socket连接了吗?
-
@DeepKakkar socket_create 没问题...它连接得很好。好吧,除非我不明白你的问题
-
您看到“已连接”吗?同样,单个 socket_write 在这里也不够用,socket_write 可以返回 0 或 10 或任何写入的字节。你需要一个循环。