use local server in XamarinHelloworld

pull/16194/head
Jan Tattermusch 6 years ago
parent da5452578a
commit 7ff80cfb5e
  1. 29
      examples/csharp/HelloworldXamarin/Droid/MainActivity.cs
  2. 27
      examples/csharp/HelloworldXamarin/iOS/ViewController.cs

@ -1,6 +1,7 @@
using Android.App; using Android.App;
using Android.Widget; using Android.Widget;
using Android.OS; using Android.OS;
using System.Threading.Tasks;
using Grpc.Core; using Grpc.Core;
using Helloworld; using Helloworld;
@ -9,7 +10,8 @@ namespace HelloworldXamarin.Droid
[Activity(Label = "HelloworldXamarin", MainLauncher = true, Icon = "@mipmap/icon")] [Activity(Label = "HelloworldXamarin", MainLauncher = true, Icon = "@mipmap/icon")]
public class MainActivity : Activity public class MainActivity : Activity
{ {
//int count = 1; const int Port = 50051;
int count = 1;
protected override void OnCreate(Bundle savedInstanceState) protected override void OnCreate(Bundle savedInstanceState)
{ {
@ -27,21 +29,38 @@ namespace HelloworldXamarin.Droid
private void SayHello(Button button) private void SayHello(Button button)
{ {
Server server = new Server
{
Services = { Greeter.BindService(new GreeterImpl()) },
Ports = { new ServerPort("localhost", Port, ServerCredentials.Insecure) }
};
server.Start();
// use loopback on host machine: https://developer.android.com/studio/run/emulator-networking // use loopback on host machine: https://developer.android.com/studio/run/emulator-networking
Channel channel = new Channel("10.0.2.2:50051", ChannelCredentials.Insecure); //10.0.2.2:50051
Channel channel = new Channel("localhost:50051", ChannelCredentials.Insecure);
var client = new Greeter.GreeterClient(channel); var client = new Greeter.GreeterClient(channel);
string user = "Xamarin"; string user = "Xamarin " + count;
var reply = client.SayHello(new HelloRequest { Name = user }); var reply = client.SayHello(new HelloRequest { Name = user });
button.Text = "Greeting: " + reply.Message; button.Text = "Greeting: " + reply.Message;
channel.ShutdownAsync().Wait(); channel.ShutdownAsync().Wait();
} server.ShutdownAsync().Wait();
}
count++;
}
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 });
}
}
}
} }

@ -1,4 +1,6 @@
using System; using System;
using System.Threading.Tasks;
using Grpc.Core; using Grpc.Core;
using Helloworld; using Helloworld;
@ -8,6 +10,7 @@ namespace HelloworldXamarin.iOS
{ {
public partial class ViewController : UIViewController public partial class ViewController : UIViewController
{ {
const int Port = 50051;
int count = 1; int count = 1;
public ViewController(IntPtr handle) : base(handle) public ViewController(IntPtr handle) : base(handle)
@ -35,18 +38,36 @@ namespace HelloworldXamarin.iOS
private string SayHello() private string SayHello()
{ {
Server server = new Server
{
Services = { Greeter.BindService(new GreeterImpl()) },
Ports = { new ServerPort("localhost", Port, ServerCredentials.Insecure) }
};
server.Start();
// use loopback on host machine: https://developer.android.com/studio/run/emulator-networking Channel channel = new Channel("localhost:50051", ChannelCredentials.Insecure);
Channel channel = new Channel("10.0.2.2:50051", ChannelCredentials.Insecure);
var client = new Greeter.GreeterClient(channel); var client = new Greeter.GreeterClient(channel);
string user = "Xamarin"; string user = "Xamarin " + count;
var reply = client.SayHello(new HelloRequest { Name = user }); var reply = client.SayHello(new HelloRequest { Name = user });
channel.ShutdownAsync().Wait(); channel.ShutdownAsync().Wait();
server.ShutdownAsync().Wait();
count++;
return "Greeting: " + reply.Message; return "Greeting: " + reply.Message;
} }
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 });
}
}
} }
} }

Loading…
Cancel
Save