/// <summary> /// Example of using UDP where bindings and addresses are specified in config. /// </summary> static void Main(string[] args) { Debug.Listeners.Add(new TextWriterTraceListener(Console.Out)); Console.WriteLine("Testing Udp Activation."); // 1. Start status service Console.WriteLine("Start the status service."); IStatusContract status = ChannelFactoryHelper.CreateSingleChannel <IStatusContract>("status"); status.Start(); // 2. Sending datagrams Console.WriteLine("Sending UDP datagrams."); Console.Write("Type a word that you want to say to the server: "); string input = Console.ReadLine(); IDatagramContract datagram = ChannelFactoryHelper.CreateSingleChannel <IDatagramContract>("datagram"); for (int i = 0; i < 5; i++) { string greeting = string.Format(CultureInfo.InvariantCulture, "{0}[{1}]", input, i); Console.WriteLine(" Sending datagram: {0}", greeting); datagram.Hello(greeting); } ((IChannel)datagram).Close(); // 3. Calling UDP duplex contract Console.WriteLine("Calling UDP duplex contract (ICalculatorContract)."); ICalculatorContract calculator = ChannelFactoryHelper.CreateSingleChannel <ICalculatorContract>("calculator"); for (int i = 0; i < 5; ++i) { Console.WriteLine(" {0} + {1} = {2}", i, i * 2, calculator.Add(i, i * 2)); } ((IChannel)calculator).Close(); // 4. Check status service Console.WriteLine("Getting status and dump server traces:"); string statusResult = status.GetStatus(); string[] traces = statusResult.Split('|'); for (int i = 0; i < traces.Length; i++) { Console.WriteLine(" {0}", traces[i]); } ((IChannel)status).Close(); Console.WriteLine("Press <ENTER> to complete test."); Console.ReadLine(); }
public CalculatorContractToViewHostAdapter(ICalculatorContract contract) { this.contract = contract; handle = new ContractHandle(contract); }