问题:命名空间“System.Runtime.Remoting.Channels”中不存在类型或命名空间名“Tcp”(是否缺少程序集引用?)
解决:项目->添加引用->程序集->选中System.Runtime.Remoting
remmoting:实现进程间通讯,主要是获取远程对象,实际的通讯是通过TCP
实现的流程:
先定义一个继承了MarshalByRefObject 的类,该类是在支持远程处理的应用程序中,允许跨应用程序域边界访问对象
1.定义信道
服务器: TcpServerChannel channels = new TcpServerChannel("TalkChannel", 9000);
TcpServerChannel (string name, int port)
name:信道名称
port:信道监听端口
客户端: TcpClientChannel channel = new TcpClientChannel();
2.注册信道
ChannelServices.RegisterChannel(channel, true);
3.服务器:注册远程对象模型
RemotingConfiguration.RegisterWellKnownServiceType(typeof(Talker), "Talker", WellKnownObjectMode.SingleCall);
typeof(Talker):对象Type
"Talker":对象URI
WellKnownObjectMode.SingleCall:正在被注册的已知对象类型的激活方式 (SingleCall每个传入的消息由新的