proto syntax = "proto3"; package mypackage; service MyService { rpc MyMethod (MyRequest) returns (MyResponse) {} } message MyRequest { string name = 1; } message MyResponse { string message = 1; } protoc -I=$SRC_DIR --java_out=$DST_DIR $SRC_DIR/MyService.proto package mypackage; import io.grpc.stub.StreamObserver; public class MyServiceImpl extends MyServiceGrpc.MyServiceImplBase { @Override public void myMethod(MyRequest request, StreamObserver<MyResponse> responseObserver) { String name = request.getName(); String message = "Hello, " + name + "!"; MyResponse response = MyResponse.newBuilder().setMessage(message).build(); responseObserver.onNext(response); responseObserver.onCompleted(); } } package mypackage; import io.grpc.Server; import io.grpc.ServerBuilder; import java.io.IOException; public class Server { public static void main(String[] args) throws IOException, InterruptedException { Server server = ServerBuilder.forPort(50051) .addService(new MyServiceImpl()) .build(); server.start(); System.out.println("Server started on port 50051"); server.awaitTermination(); } } package mypackage; import io.grpc.ManagedChannel; import io.grpc.ManagedChannelBuilder; public class Client { public static void main(String[] args) { ManagedChannel channel = ManagedChannelBuilder.forAddress("localhost", 50051) .usePlaintext() .build(); MyServiceGrpc.MyServiceBlockingStub stub = MyServiceGrpc.newBlockingStub(channel); MyRequest request = MyRequest.newBuilder().setName("John").build(); MyResponse response = stub.myMethod(request); System.out.println("Response: " + response.getMessage()); channel.shutdown(); } } javac ./**/*.java java mypackage.Server java mypackage.Client


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