namespace java tutorial.calculator service Calculator { i32 add(1:i32 num1, 2:i32 num2), i32 subtract(1:i32 num1, 2:i32 num2), i32 multiply(1:i32 num1, 2:i32 num2), double divide(1:i32 num1, 2:i32 num2), } thrift --gen java Calculator.thrift package tutorial.calculator; public class CalculatorServiceImpl implements Calculator.Iface { @Override public int add(int num1, int num2) { return num1 + num2; } @Override public int subtract(int num1, int num2) { return num1 - num2; } @Override public int multiply(int num1, int num2) { return num1 * num2; } @Override public double divide(int num1, int num2) { if (num2 == 0) { } return (double) num1 / num2; } } package tutorial.calculator; import org.apache.thrift.server.TServer; import org.apache.thrift.server.TSimpleServer; import org.apache.thrift.transport.TServerSocket; import org.apache.thrift.transport.TServerTransport; public class CalculatorServer { public static void main(String[] args) { try { Calculator.Processor processor = new Calculator.Processor<>(new CalculatorServiceImpl()); TServerTransport serverTransport = new TServerSocket(9090); TServer server = new TSimpleServer(new TServer.Args(serverTransport).processor(processor)); server.serve(); } catch (Exception e) { e.printStackTrace(); } } } package tutorial.calculator; import org.apache.thrift.TException; import org.apache.thrift.protocol.TBinaryProtocol; import org.apache.thrift.transport.TSocket; import org.apache.thrift.transport.TTransport; public class CalculatorClient { public static void main(String[] args) { try { TTransport transport = new TSocket("localhost", 9090); transport.open(); TBinaryProtocol protocol = new TBinaryProtocol(transport); Calculator.Client client = new Calculator.Client(protocol); int result = client.add(10, 5); System.out.println("10 + 5 = " + result); transport.close(); } catch (TException e) { e.printStackTrace(); } } }


上一篇:
下一篇:
切换中文