PHP socket

曾经写的一个函数 远程调用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;
}
?>

 

 

你可能感兴趣的:(socket)