曾经写的一个函数 远程调用C++接口!
<?php
function socket($json) {
error_reporting ( 0 ); //禁用错误报告
$dbhost = '192.168.0.75'; //客户端地址
$port = 8000; //端口
$str = iconv ( "UTF-8", "GBK", $json );
$socket = @socket_create ( AF_INET, SOCK_STREAM, SOL_TCP );
if (false == (socket_connect ( $socket, $dbhost, $port ))) {
}
socket_write ( $socket, $str );
$obj = null;
$buffer = "";
//当返回数据多的时候,通过TCP协议数据不可能一次性读取完,
//我们可以利用 json_decode 反解出来是不是有效的格式,如果返回是null说明数据解析不对,可以利用这点来循环的读取
while ( $obj == null ) {
$recvBuffer = socket_read ( $socket, 1, PHP_NORMAL_READ );
if ($recvBuffer == "") {
break;
}
$buffer .= $recvBuffer;
$str = iconv ( "GBK", "UTF-8", $buffer );
$obj = json_decode ( $str, true );
}
//print_r($str);
socket_close ( $socket );
return $obj;
}
?>