1、基于Java的socket API,可以实现一个简单的RPC调用。
具体实现代码如下,原则仅仅是为了便于展示调用过程。
// 接口类
public interface SayHelloService {
/**
* say hello method
* @param helloArgs args
* @return string
*/
String sayHello(String helloArgs);
}
// 接口实现类
public class SayHelloServiceImpl implements SayHelloService {
@Override
public String sayHello(String helloArgs) {
String cmpArgs = "hello";
if (cmpArgs.equals(helloArgs)){
return "hello";
} else {
return "bye bye";
}
}
}
// 服务提供类
public class ServiceProvider {
void monitor() throws Exception {
Map<String,Object> services = new HashMap<>();
services.put("com.loongshawn.test.service.SayHelloService",new SayHelloServiceImpl());
ServerSocket sever = new ServerSocket(1234);
while (true) {
Socket socket = sever.accept();
System.out.println("server socket accept");
// 读取服务信息
ObjectInputStream input = new ObjectInputStream(socket.getInputStream());