C#에서 gRPC 서버 개발 환경 만들기
개요
C#에서 gRPC 서버의 개발 환경을 만드는 단계입니다.
Visual Studio 2019를 사용합니다.
대체로 이것과 같습니다.
htps : // / cs. 미 c 로소 ft. 이 m/쟈-jp/아 sp네 t/이것/grpc/바시 cs?ゔ ぃ w = 아 sp t 이것 3.0
htps://grpc. 이오 / 도 cs / 쿠이 cks rt / c 샤 rp /
C# 프로젝트 만들기
콘솔 앱(.NET Core) 프로젝트를 만듭니다.
패키지 설치
NuGet에서 다음 패키지를 설치합니다.
* Grpc.Core
* Grpc.Tools
* Google.Protobuf
프로젝트 파일 편집
프로젝트 파일에 다음 코드를 추가합니다.
proto 파일에서 C# 소스 코드를 생성하기 위한 설정입니다.
<ItemGroup>
<Protobuf Include="**/*.proto" OutputDir="%(RelativePath)" CompileOutputs="false" GrpcServices="Server" />
</ItemGroup>
위는 서버 측 파일을 생성하는 경우입니다. 클라이언트측의 경우 GrpcServices
를 Client
로 설정합니다.
서버 클라이언트 파일을 모두 생성하려면 Both
로 설정하십시오.
proto 파일 추가
예를 들어 다음과 같은 proto 파일을 추가합니다.
helloworld.protosyntax = "proto3";
// The greeting service definition.
service Greeter {
// Sends a greeting
rpc SayHello (HelloRequest) returns (HelloReply) {}
}
// The request message containing the user's name.
message HelloRequest {
string name = 1;
}
// The response message containing the greetings
message HelloReply {
string message = 1;
}
추가하면 자동으로 C# 파일이 생성됩니다.
서버 시작
아래와 같은 코드로 서버가 움직입니다.
using Grpc.Core;
using System;
using System.Threading.Tasks;
namespace ConsoleApp2
{
class GreeterImpl : Greeter.GreeterBase
{
// Server side handler of the SayHello RPC
public override Task<HelloReply> SayHello(HelloRequest request, ServerCallContext context)
{
return Task.FromResult(new HelloReply { Message = "Hello " + request.Name });
}
}
class Program
{
const int Port = 50051;
public static void Main(string[] args)
{
Server server = new Server
{
Services = { Greeter.BindService(new GreeterImpl()) },
Ports = { new ServerPort("localhost", Port, ServerCredentials.Insecure) }
};
server.Start();
Console.WriteLine("Greeter server listening on port " + Port);
Console.WriteLine("Press any key to stop the server...");
Console.ReadKey();
server.ShutdownAsync().Wait();
}
}
}
끝.
Reference
이 문제에 관하여(C#에서 gRPC 서버 개발 환경 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/iuemon83/items/2c755f1248fefa6dd016
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
콘솔 앱(.NET Core) 프로젝트를 만듭니다.
패키지 설치
NuGet에서 다음 패키지를 설치합니다.
* Grpc.Core
* Grpc.Tools
* Google.Protobuf
프로젝트 파일 편집
프로젝트 파일에 다음 코드를 추가합니다.
proto 파일에서 C# 소스 코드를 생성하기 위한 설정입니다.
<ItemGroup>
<Protobuf Include="**/*.proto" OutputDir="%(RelativePath)" CompileOutputs="false" GrpcServices="Server" />
</ItemGroup>
위는 서버 측 파일을 생성하는 경우입니다. 클라이언트측의 경우 GrpcServices
를 Client
로 설정합니다.
서버 클라이언트 파일을 모두 생성하려면 Both
로 설정하십시오.
proto 파일 추가
예를 들어 다음과 같은 proto 파일을 추가합니다.
helloworld.protosyntax = "proto3";
// The greeting service definition.
service Greeter {
// Sends a greeting
rpc SayHello (HelloRequest) returns (HelloReply) {}
}
// The request message containing the user's name.
message HelloRequest {
string name = 1;
}
// The response message containing the greetings
message HelloReply {
string message = 1;
}
추가하면 자동으로 C# 파일이 생성됩니다.
서버 시작
아래와 같은 코드로 서버가 움직입니다.
using Grpc.Core;
using System;
using System.Threading.Tasks;
namespace ConsoleApp2
{
class GreeterImpl : Greeter.GreeterBase
{
// Server side handler of the SayHello RPC
public override Task<HelloReply> SayHello(HelloRequest request, ServerCallContext context)
{
return Task.FromResult(new HelloReply { Message = "Hello " + request.Name });
}
}
class Program
{
const int Port = 50051;
public static void Main(string[] args)
{
Server server = new Server
{
Services = { Greeter.BindService(new GreeterImpl()) },
Ports = { new ServerPort("localhost", Port, ServerCredentials.Insecure) }
};
server.Start();
Console.WriteLine("Greeter server listening on port " + Port);
Console.WriteLine("Press any key to stop the server...");
Console.ReadKey();
server.ShutdownAsync().Wait();
}
}
}
끝.
Reference
이 문제에 관하여(C#에서 gRPC 서버 개발 환경 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/iuemon83/items/2c755f1248fefa6dd016
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
프로젝트 파일에 다음 코드를 추가합니다.
proto 파일에서 C# 소스 코드를 생성하기 위한 설정입니다.
<ItemGroup>
<Protobuf Include="**/*.proto" OutputDir="%(RelativePath)" CompileOutputs="false" GrpcServices="Server" />
</ItemGroup>
위는 서버 측 파일을 생성하는 경우입니다. 클라이언트측의 경우
GrpcServices
를 Client
로 설정합니다.서버 클라이언트 파일을 모두 생성하려면
Both
로 설정하십시오.proto 파일 추가
예를 들어 다음과 같은 proto 파일을 추가합니다.
helloworld.protosyntax = "proto3";
// The greeting service definition.
service Greeter {
// Sends a greeting
rpc SayHello (HelloRequest) returns (HelloReply) {}
}
// The request message containing the user's name.
message HelloRequest {
string name = 1;
}
// The response message containing the greetings
message HelloReply {
string message = 1;
}
추가하면 자동으로 C# 파일이 생성됩니다.
서버 시작
아래와 같은 코드로 서버가 움직입니다.
using Grpc.Core;
using System;
using System.Threading.Tasks;
namespace ConsoleApp2
{
class GreeterImpl : Greeter.GreeterBase
{
// Server side handler of the SayHello RPC
public override Task<HelloReply> SayHello(HelloRequest request, ServerCallContext context)
{
return Task.FromResult(new HelloReply { Message = "Hello " + request.Name });
}
}
class Program
{
const int Port = 50051;
public static void Main(string[] args)
{
Server server = new Server
{
Services = { Greeter.BindService(new GreeterImpl()) },
Ports = { new ServerPort("localhost", Port, ServerCredentials.Insecure) }
};
server.Start();
Console.WriteLine("Greeter server listening on port " + Port);
Console.WriteLine("Press any key to stop the server...");
Console.ReadKey();
server.ShutdownAsync().Wait();
}
}
}
끝.
Reference
이 문제에 관하여(C#에서 gRPC 서버 개발 환경 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/iuemon83/items/2c755f1248fefa6dd016
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
syntax = "proto3";
// The greeting service definition.
service Greeter {
// Sends a greeting
rpc SayHello (HelloRequest) returns (HelloReply) {}
}
// The request message containing the user's name.
message HelloRequest {
string name = 1;
}
// The response message containing the greetings
message HelloReply {
string message = 1;
}
아래와 같은 코드로 서버가 움직입니다.
using Grpc.Core;
using System;
using System.Threading.Tasks;
namespace ConsoleApp2
{
class GreeterImpl : Greeter.GreeterBase
{
// Server side handler of the SayHello RPC
public override Task<HelloReply> SayHello(HelloRequest request, ServerCallContext context)
{
return Task.FromResult(new HelloReply { Message = "Hello " + request.Name });
}
}
class Program
{
const int Port = 50051;
public static void Main(string[] args)
{
Server server = new Server
{
Services = { Greeter.BindService(new GreeterImpl()) },
Ports = { new ServerPort("localhost", Port, ServerCredentials.Insecure) }
};
server.Start();
Console.WriteLine("Greeter server listening on port " + Port);
Console.WriteLine("Press any key to stop the server...");
Console.ReadKey();
server.ShutdownAsync().Wait();
}
}
}
끝.
Reference
이 문제에 관하여(C#에서 gRPC 서버 개발 환경 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/iuemon83/items/2c755f1248fefa6dd016텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)