// Copyright 2003 Kristopher Johnson #region License // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #endregion using System; using System.IO; using System.Runtime.Remoting.Channels; using System.Runtime.Remoting.Messaging; using Remoting.Corba.Channels.Iiop; namespace HelloApp { // interface for remote CORBA object interface Hello { string sayHello(string name); [OneWay] void shutdown(); } class App { static void Main(string[] args) { try { // read the IOR from the file if (args.Length < 1) throw new Exception("IOR filename not specified on command line"); string ior; using (StreamReader iorFile = new StreamReader(args[0])) { ior = iorFile.ReadToEnd(); } // register IIOP channel with Remoting ChannelServices.RegisterChannel(new IiopClientChannel()); // create the remote proxy Hello server = (Hello) Activator.GetObject(typeof(Hello), ior); // prompt user for lines to hello string input; do { Console.Write("Your name (Ctrl-Z to exit) ? "); input = Console.ReadLine(); if (input != null) { string result = server.sayHello(input); Console.WriteLine("String returned by server:"+result); } } while (input != null); // shutdown the server server.shutdown(); Console.WriteLine("Server shutdown"); } catch (Exception ex) { Console.Error.WriteLine("Exception: " + ex.ToString()); } } } }