RMIClient.cs

00001 using System;
00002 using System.Collections.Generic;
00003 using System.Text;
00004 using System.Windows.Forms;
00005 using System.Runtime.Remoting.Channels;
00006 using System.Runtime.Remoting.Channels.Tcp;
00007 using Shared;
00008 
00009 namespace Client
00010 {
00014     class RMIClient
00015     {
00017         private TcpChannel chan;
00019         private string errorMessage;
00020 
00022         public string ErrorMessage
00023         {
00024             get { return errorMessage; }
00025             set { errorMessage = value; }
00026         }
00027 
00032         public IAccessHandler Connect()
00033         {
00034             if (chan != null)
00035                 Stop();
00036             // Load the server settings from the local settings
00037             LocalSettings settings = new LocalSettings();
00038 
00039             // Create a channel for communicating w/ the remote object
00040             // Notice no port is specified on the client
00041             chan = new TcpChannel();
00042             try
00043             {
00044                 ChannelServices.RegisterChannel(chan, false);
00045 
00046                 PublicObject server = (PublicObject)Activator.GetObject(
00047                     typeof(PublicObject),
00048                     "tcp://" + settings.Server + ":" + settings.Port + "/ArticleCatalogue");
00049 
00050                 return server.GetAccessHandler();
00051 
00052             }
00053             catch (Exception ex)
00054             {
00055                 errorMessage = ex.Message;
00056             }
00057             return null;
00058         }
00062         public void Stop()
00063         {
00064             ChannelServices.UnregisterChannel(chan);
00065             chan.StopListening(null);
00066             chan = null;
00067         }
00068     }
00069 }

Generated on Thu Dec 21 06:21:55 2006 for SCRAML by  doxygen 1.5.1-p1