示例#1
0
        internal async Task RunClientAsync()
        {
            var clientSock = new TcpClient();

            _barrier.SignalAndWait();
            await clientSock.ConnectAsync(IPAddress.Loopback, Program.lbPort);

            var caller = new RpcCaller <IHelloService>(
                new NetworkRpcClient(new TcpTransportLayer(clientSock)
                                     ));

            //var result = await caller.CallByNameAsync<string>(nameof(IHelloServer.SayHello));
            _barrier.SignalAndWait();
            var client      = caller.CreateClient();
            var helloResult = client.SayHello();

            Console.WriteLine($"Sent command from client. Server responded {helloResult}");
            Console.WriteLine($"Is the sky blue?: {client.IsSkyBlue()}");
            Console.WriteLine($"1 + 3 is: {client.Add(1, 3)}");
            var c1 = new TastyCookie(TastyCookie.CookieFlavor.Chocolate, 6, 1);
            var c2 = new TastyCookie(TastyCookie.CookieFlavor.Chocolate, 8, 1.2);

            Console.WriteLine($"Volume of TastyCookie 1 is: {client.GetVolume(c1)}");
            Console.WriteLine($"Cookie {(client.Compare(c1, c2) ? "1" : "2")} is larger.");
            await Task.Delay(0);
        }
        public TestClientFixture()
        {
            var sockets    = SocketProvider.CreateSockets().Result;
            var clientSock = sockets.Item1;
            var serverSock = sockets.Item2;

            Service = new RpcService <ITestService>(
                new NetworkRpcService(new TcpTransportLayer(serverSock)
                                      ));
            Caller = new RpcCaller <ITestService>(
                new NetworkRpcClient(new TcpTransportLayer(clientSock)
                                     ));
            Service.Export(new TestService());
            Client = Caller.CreateClient();
        }