namespace RM_Server
{
class Program
{
static void Main(string[] args)
{
TcpChannel tcpChannel = new TcpChannel(8085);
HttpChannel httpChannel = new HttpChannel(8086);
ChannelServices.RegisterChannel(tcpChannel);
ChannelServices.RegisterChannel(httpChannel);
RemotingConfiguration.RegisterWellKnownServiceType(typeof(HelloServer), "Test.Server", WellKnownObjectMode.Singleton);
System.Console.WriteLine("Press Enter key to exit");
System.Console.ReadLine();
}
}
}
namespace RM_Client
{
class Program
{
static void Main(string[] args)
{
//HttpChannel chan2 = new HttpChannel();
//TcpChannel chan2 = new TcpChannel();
IDictionary httpProp = new Hashtable();
httpProp.Add("name", "PayServer.Binary");
httpProp.Add("timeout", "30000");
httpProp.Add("useIpAddress", "false");
BinaryClientFormatterSinkProvider clientProvider = new BinaryClientFormatterSinkProvider();
BinaryServerFormatterSinkProvider serverProvider = new BinaryServerFormatterSinkProvider();
serverProvider.TypeFilterLevel = System.Runtime.Serialization.Formatters.TypeFilterLevel.Full;
TcpChannel tcpChannel = new TcpChannel(httpProp, clientProvider, serverProvider);
IChannel[] channels = ChannelServices.RegisteredChannels;
ChannelServices.RegisterChannel(tcpChannel);
HelloServer obj1 = (HelloServer)Activator.GetObject(
typeof(HelloServer),
"http://localhost:8086/Test.Server");
if (obj1 == null)
{
System.Console.WriteLine(
"Could not locate HTTP server");
}
Console.WriteLine(
"Client1 TCP HelloUserMethod {0}",
obj1.HelloUserMethod(new User("xxx", true)));
Console.ReadLine();
}
}
}
namespace RM_Model
{
[Serializable]
public class User
{
public User(string name, bool male)
{
this.Name = name;
this.Male = male;
}
public string Name { get; set; }
public bool Male { get; set; }
}
}
namespace RM_Model
{
public class HelloServer : MarshalByRefObject
{
public HelloServer()
{
Console.WriteLine("HelloServer activated");
}
public String HelloUserMethod(User user)
{
string title;
if (user.Male)
title = "先生";
else
title = "女士";
Console.WriteLine("Server Hello.HelloMethod : 你好,{0}{1}", user.Name, title);
return "你好," + user.Name + title;
}
}
}