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
00037 LocalSettings settings = new LocalSettings();
00038
00039
00040
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 }