PHPRPC是一款不错的是轻型的、安全的、跨网际的、跨语言的、跨平台的、跨环境的、跨域的、支持复杂对象传输的、支持引用参数传递的、支持内容输出重定向的、支持分级错误处理的、支持会话的、面向服务的高性能远程过程调用协议。官方网址为http://www.phprpc.org/zh_CN/
本文以Java作为服务器端,PHP作为客户端来作为演示。
1、先书写Java服务器端,书写一个接口。如下:
package org.huashui.server; public interface UserManager { //增加一个用户名 public void add(String name); //获取用户名 public String getName(); //长数据测试 public String getLongString(); //长数据测试2 public byte[] getLongByte(); }
书写实现类
package org.huashui.server.impl; import org.huashui.server.UserManager; public class UserManagerImpl implements UserManager { private String name; public void add(String name) { this.name = name; System.out.println("我爱你," + name); } public String getName() { return "我也爱你"; } public String getLongString() { StringBuffer sb = new StringBuffer(); return sb.toString(); } public byte[] getLongByte() { StringBuffer sb = new StringBuffer(); for (int i = 0; i < 40000; i++) { sb .append( i + "insert into passport_members(username, password, email, regdate, salt, totalpoint, pid) values ('huashui','12312312312312','123@yahoo.com.cn','0','','0','123');") .append("\n"); } return sb.toString().getBytes(); } }
书写供远程调用的server.jsp
<%@ page language="java" pageEncoding="ISO-8859-1"%> <%@ page import="org.phprpc.PHPRPC_Server"%> <%@ page import="org.huashui.server.UserManager"%> <%@page import="org.huashui.server.impl.UserManagerImpl;"%> <% PHPRPC_Server phprpc_server = new PHPRPC_Server(); UserManager um; um= new UserManagerImpl(); phprpc_server.add(um); phprpc_server.start(request,response); %>
至此,服务器端完成。
客户端
header("Content-type:text/plain;charset=GB2312"); include ("php/phprpc_client.php"); $client = new PHPRPC_Client(); $client->useService('http://localhost:8080/phprpc/server.jsp"); $client->setCharset('GB2312'); $client->setKeyLength(128); $client->setEncryptMode(3); $client->add("huashui");