syntax = "proto3";
service HelloWorld {
rpc SayHello (HelloRequest) returns (HelloResponse) {}
}
public class HelloWorldService extends HelloWorldGrpc.HelloWorldImplBase {
@Override
public void sayHello(HelloRequest request, StreamObserver<HelloResponse> responseObserver) {
String name = request.getName();
String greeting = "Hello, " + name + "!";
HelloResponse response = HelloResponse.newBuilder()
.setGreeting(greeting)
.build();
responseObserver.onNext(response);
responseObserver.onCompleted();
}
}
public class Server {
public static void main(String[] args) throws IOException, InterruptedException {
Server server = ServerBuilder.forPort(50051)
.addService(new HelloWorldService())
.build();
server.start();
server.awaitTermination();
}
}
public class Client {
public static void main(String[] args) {
ManagedChannel channel = ManagedChannelBuilder.forAddress("localhost", 50051)
.usePlaintext()
.build();
HelloWorldGrpc.HelloWorldBlockingStub blockingStub = HelloWorldGrpc.newBlockingStub(channel);
HelloRequest request = HelloRequest.newBuilder()
.setName("Alice")
.build();
HelloResponse response = blockingStub.sayHello(request);
String greeting = response.getGreeting();
System.out.println(greeting);
channel.shutdown();
}
}