我正在使用 php(套接字扩展)来处理发送和接收 xml 文件。我希望能够修复传出客户端端口号,因为服务器有一定数量的传入连接。我发现每次运行 php 脚本时,它都会创建一个新的端口号。到目前为止,我拥有的客户端脚本是这样的:-
send_message('192.9.2.50','10220',$xmlCmd->asXML());
function send_message($ipaddr, $port, $msg)
{
$fp = stream_socket_client("tcp://".$ipaddr.":".$port, $errno, $errstr);
if (!$fp)
{
echo "ERR : $errno - $errstr";
}
else
{
fwrite($fp,$msg);
$response = fread($fp,1024);
// Make a SimpleXML object from the response
$xml = new SimpleXMLElement($response);
echo $xml->Channel->Air->Index;
fclose($fp);
}
}
更新:
我会再次尝试使用 file_get_contents 但 xml 似乎只从客户端传递到服务器,即没有回复。任何人都可以帮助我使用 stream_context_create 选项,我需要将这两者结合起来,但似乎无法正确处理。代码:-
$opts = array('http' =>
array( 'method' => 'POST',
'header' => 'Content-type: text/xml;',
'content' => $msg)
);
//combine with these options
$opts = array('socket'=>array('bindto'=>"192.9.2.60:2800"));