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");
