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;
}
?>

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值