aboutsummaryrefslogtreecommitdiffhomepage
path: root/examples/csharp
diff options
context:
space:
mode:
authorGravatar Jan Tattermusch <jtattermusch@google.com>2018-07-30 14:52:32 +0200
committerGravatar Jan Tattermusch <jtattermusch@google.com>2018-07-31 12:42:47 +0200
commit7ff80cfb5e4feed06152ca2c99f1888bb484908b (patch)
treedb3e19926ed110a05973d617a9f376bcbe9b3a94 /examples/csharp
parentda5452578a118ddcc8833be5baa36616846b449a (diff)
use local server in XamarinHelloworld
Diffstat (limited to 'examples/csharp')
-rw-r--r--examples/csharp/HelloworldXamarin/Droid/MainActivity.cs41
-rw-r--r--examples/csharp/HelloworldXamarin/iOS/ViewController.cs37
2 files changed, 59 insertions, 19 deletions
diff --git a/examples/csharp/HelloworldXamarin/Droid/MainActivity.cs b/examples/csharp/HelloworldXamarin/Droid/MainActivity.cs
index 2c158e9d7c..5883f79f09 100644
--- a/examples/csharp/HelloworldXamarin/Droid/MainActivity.cs
+++ b/examples/csharp/HelloworldXamarin/Droid/MainActivity.cs
@@ -1,6 +1,7 @@
using Android.App;
using Android.Widget;
using Android.OS;
+using System.Threading.Tasks;
using Grpc.Core;
using Helloworld;
@@ -9,7 +10,8 @@ namespace HelloworldXamarin.Droid
[Activity(Label = "HelloworldXamarin", MainLauncher = true, Icon = "@mipmap/icon")]
public class MainActivity : Activity
{
- //int count = 1;
+ const int Port = 50051;
+ int count = 1;
protected override void OnCreate(Bundle savedInstanceState)
{
@@ -25,23 +27,40 @@ namespace HelloworldXamarin.Droid
button.Click += delegate { SayHello(button); };
}
- 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
+ //10.0.2.2:50051
+ Channel channel = new Channel("localhost:50051", ChannelCredentials.Insecure);
- // use loopback on host machine: https://developer.android.com/studio/run/emulator-networking
- Channel channel = new Channel("10.0.2.2:50051", ChannelCredentials.Insecure);
+ var client = new Greeter.GreeterClient(channel);
+ string user = "Xamarin " + count;
- var client = new Greeter.GreeterClient(channel);
- string user = "Xamarin";
+ 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();
+ server.ShutdownAsync().Wait();
+
+ count++;
+ }
- channel.ShutdownAsync().Wait();
+ 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 });
}
+ }
}
-
-
}
diff --git a/examples/csharp/HelloworldXamarin/iOS/ViewController.cs b/examples/csharp/HelloworldXamarin/iOS/ViewController.cs
index 33bb4a00e2..ba4618c018 100644
--- a/examples/csharp/HelloworldXamarin/iOS/ViewController.cs
+++ b/examples/csharp/HelloworldXamarin/iOS/ViewController.cs
@@ -1,4 +1,6 @@
using System;
+using System.Threading.Tasks;
+
using Grpc.Core;
using Helloworld;
@@ -8,6 +10,7 @@ namespace HelloworldXamarin.iOS
{
public partial class ViewController : UIViewController
{
+ const int Port = 50051;
int count = 1;
public ViewController(IntPtr handle) : base(handle)
@@ -33,20 +36,38 @@ namespace HelloworldXamarin.iOS
// Release any cached data, images, etc that aren't in use.
}
- private string SayHello()
+ private string SayHello()
+ {
+ Server server = new Server
{
+ Services = { Greeter.BindService(new GreeterImpl()) },
+ Ports = { new ServerPort("localhost", Port, ServerCredentials.Insecure) }
+ };
+ server.Start();
+
+ Channel channel = new Channel("localhost:50051", ChannelCredentials.Insecure);
+
+ var client = new Greeter.GreeterClient(channel);
+ string user = "Xamarin " + count;
- // use loopback on host machine: https://developer.android.com/studio/run/emulator-networking
- Channel channel = new Channel("10.0.2.2:50051", ChannelCredentials.Insecure);
+ var reply = client.SayHello(new HelloRequest { Name = user });
- var client = new Greeter.GreeterClient(channel);
- string user = "Xamarin";
+ channel.ShutdownAsync().Wait();
+ server.ShutdownAsync().Wait();
- var reply = client.SayHello(new HelloRequest { Name = user });
+ count++;
+
+ return "Greeting: " + reply.Message;
+ }
- channel.ShutdownAsync().Wait();
- 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 });
}
+ }
}
}