thrift namespace java com.example 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), i32 divide(1:i32 num1, 2:i32 num2), } bash thrift --gen java example.thrift import com.example.Calculator; import org.apache.thrift.TException; public class CalculatorServer implements Calculator.Iface { @Override public int add(int num1, int num2) throws TException { return num1 + num2; } @Override public int subtract(int num1, int num2) throws TException { return num1 - num2; } @Override public int multiply(int num1, int num2) throws TException { return num1 * num2; } @Override public int divide(int num1, int num2) throws TException { if (num2 == 0) { throw new TException("Cannot divide by zero"); } return num1 / num2; } } import com.example.Calculator; import org.apache.thrift.protocol.TBinaryProtocol; import org.apache.thrift.protocol.TProtocol; 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(); TProtocol protocol = new TBinaryProtocol(transport); Calculator.Client client = new Calculator.Client(protocol); int sum = client.add(10, 5); System.out.println("Sum: " + sum); transport.close(); } catch (Exception e) { e.printStackTrace(); } } } bash java -cp .:lib/* calculator.CalculatorServer bash java -cp .:lib/* calculator.CalculatorClient


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