ファイルが出力されます。Qiitapackageパッケージ名(Golangでは)Goファイルのパッケージ名になるため出力先のディレクトリ名と合わせるべきimport別ファイルの定義を取り込む。使うhttps://developers.google.com/protocol-buffers/docs/proto3#mapsservice機能をまとめた単位。typesgRPCは4種類の通信方法を提供します。「クライアント側で指定するかサーバ側で指定するか」で名称が分かれているだけです。連続した通信(リクエスト,レスポンス)で、これまでの単発の通信と対比する呼称です。gRPCはリクエスト、レスポンスともにデータサイズに上限があります。やり取りするデータが可変長で巨大になる可能性がある場合はストリーミングによって通信を分割することが望ましいです。RPC1つのリクエストに対して1つのレスポンスを返す最も基本的なRPCです。指定しなければデフォルトでこれになります。先程も見ましたが、定義ファイルをもう一度確認しておきましょう。"helloworld.proto",}これらを使ってサーバとクライアントのコードを書いていきます。相当するメソッドが定義されている必要があります。レスポンスとして構造体を返却するだけです。メソッドを呼び出すだけです。サーバと違い、レスポンスを返却値として返すだけなのでメソッドを実装する必要はありません。それを使えばひとまずサーバとして動くようになります。必要なメソッドを追加していくというのも良さそうです。pb.UnimplementedGreeterServer}実装すべき機能が多い場合は便利ですね。引数が異なるので注意してください。利用例は最初のセクションを参照してください。RPC1つのリクエストに対して、複数(N)のレスポンスを返します。gRPCまずはproto定義と自動生成ファイル。"goodnightworld.proto",}今回プログラムの概要は以下です。クライアントは名前をサーバに一度だけ送信するサーバは受け取った名前を使って挨拶を組み立てて3回連続で返却するデバッグで標準出力にも表示するクライアントはサーバから受け取ったメッセージを標準出力に表示する実用性は全くありません。違い、リクエストパラメータは第1引数で受け取ります。メソッドを使って複数返却できます。