| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 | 
							- #region Copyright notice and license
 
- // Copyright 2018 The gRPC Authors
 
- //
 
- // Licensed under the Apache License, Version 2.0 (the "License");
 
- // you may not use this file except in compliance with the License.
 
- // You may obtain a copy of the License at
 
- //
 
- //     http://www.apache.org/licenses/LICENSE-2.0
 
- //
 
- // Unless required by applicable law or agreed to in writing, software
 
- // distributed under the License is distributed on an "AS IS" BASIS,
 
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
- // See the License for the specific language governing permissions and
 
- // limitations under the License.
 
- #endregion
 
- using System;
 
- using System.Threading.Tasks;
 
- using Grpc.Core;
 
- using Helloworld;
 
- using UIKit;
 
- namespace HelloworldXamarin.iOS
 
- {
 
-     public partial class ViewController : UIViewController
 
-     {
 
-         const int Port = 50051;
 
-         int count = 1;
 
-         public ViewController(IntPtr handle) : base(handle)
 
-         {
 
-         }
 
-         public override void ViewDidLoad()
 
-         {
 
-             base.ViewDidLoad();
 
-             // Perform any additional setup after loading the view, typically from a nib.
 
-             Button.AccessibilityIdentifier = "myButton";
 
-             Button.TouchUpInside += delegate
 
-             {
 
-                 var title = SayHello();
 
-                 Button.SetTitle(title, UIControlState.Normal);
 
-             };
 
-         }
 
-         public override void DidReceiveMemoryWarning()
 
-         {
 
-             base.DidReceiveMemoryWarning();
 
-             // Release any cached data, images, etc that aren't in use.		
 
-         }
 
-         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;
 
-             var reply = client.SayHello(new HelloRequest { Name = user });
 
-             channel.ShutdownAsync().Wait();
 
-             server.ShutdownAsync().Wait();
 
-             count++;
 
-             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 });
 
-             }
 
-         }
 
-     }
 
- }
 
 
  |