52 lines
1.2 KiB
C#
Raw Normal View History

using System;
using System.Threading;
using System.Runtime.InteropServices;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Messaging;
using System.Runtime.Remoting.Proxies;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Simple;
using System.IO;
// compile with:
// csc -r:../../lib/System.Runtime.Remoting.dll simple-example.cs
class Test : MarshalByRefObject {
public int test_function (int a, bool b)
{
Console.WriteLine ("test function called: " + b);
return a + 1;
}
static int Main () {
Test t1 = new Test ();
ObjRef myref = RemotingServices.Marshal (t1, "/test");
Console.WriteLine ("OBJREF: " + myref.URI);
string url = "simple://localhost:8000/test";
string uri;
SimpleChannel chnl = new SimpleChannel (8000);
ChannelServices.RegisterChannel (chnl);
Console.WriteLine ("Channel name: " + chnl.ChannelName);
Console.WriteLine ("Channel priority: " + chnl.ChannelPriority);
Console.WriteLine ("URI: " + chnl.Parse (url, out uri));
Console.WriteLine ("URI: " + uri);
Test tp = (Test)RemotingServices.Connect (typeof (Test), url);
int res = tp.test_function (4, true);
Console.WriteLine ("RESULT: " + res);
chnl.StopListening (null);
return 0;
}
}