1.概要
进程间通讯实验-Remoting
2.代码
2.1类库
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MyClb
{
public delegate void DelegateFun(int a);
public class A:MarshalByRefObject
{
public void fun() {
Console.WriteLine("A:fun");
}
}
}
2.2 服务端
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;
using MyClb;
using System.Threading;
namespace 进程间通讯_ipc
{
class Program
{
static void Main(string[] args)
{
TcpServerChannel channel = new TcpServerChannel("TalkChannel", 8090); //端口随便取
ChannelServices.RegisterChannel(channel, true);
//注册远程对象
RemotingConfiguration.RegisterWellKnownServiceType(
typeof(A),
"A",
WellKnownObjectMode.SingleCall);
Console.ReadLine();
}
}
}
2.3 客户端
using MyClb;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace 客户端
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("客户端");
Thread.Sleep(500);
Program program = new Program();
program.main();
Console.ReadLine();
}
private void main() {
TcpClientChannel channel = new TcpClientChannel();
ChannelServices.RegisterChannel(channel, true);
//获取远程对象
A a = (A)Activator.GetObject(typeof(A), "TCP://localhost:8090/A");
a.fun();
}
}
}
3.结果
4.附加