c# remoting 小实例

先定义接口using System;using System.Text;namespace IComm{ /// /// send messages delegate /// /// public delegate void SendEventHandler(string Ms); public interface ICom { /// /// send function /// /// /// void SendMs(string Ms); }}obj类 using System;using System.Text;using IComm;namespace RemotingObj{ public class UsersInfo:MarshalByRefObject,ICom { public static event SendEventHandler SendEventArgs; public void SendMs(string Ms) { if (SendEventArgs != null) SendEventArgs(Ms); } public override object InitializeLifetimeService() { return null; } }} 服务端代码 using System;using System.Collections.Generic;using System.ComponentModel;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Runtime;using System.Runtime.Remoting;using System.Runtime.Remoting.Channels;using System.Runtime.Remoting.Channels.Tcp;using IComm;using RemotingObj;namespace RemotingServer{ public partial class Form1 : Form { public Form1() { InitializeComponent(); this.toolStripStatusLabel1.ForeColor = Color.Red; } private void Form1_Load(object sender, EventArgs e) { try { TcpServerChannel server = new TcpServerChannel(1234); ChannelServices.RegisterChannel(server, false); RemotingConfiguration.RegisterWellKnownServiceType(typeof(UsersInfo), "abc", WellKnownObjectMode.SingleCall); RemotingObj.UsersInfo.SendEventArgs += delegate(string s) { this.textBox1.Text = s; }; this.toolStripStatusLabel1.Text = "服务启动成功!"; } catch (Exception ex) { this.toolStripStatusLabel1.Text = ex.Message; } } }} ///客户端 using System;using System.Collections.Generic;using System.ComponentModel;using System.Drawing;using System.Runtime;using System.Runtime.Remoting;using System.Runtime.Remoting.Channels;using System.Runtime.Remoting.Channels.Tcp;using System.Text;using System.Windows.Forms;using System.Runtime;using System.Runtime.Remoting;using System.Runtime.Remoting.Channels;using System.Runtime.Remoting.Channels.Tcp;using IComm;using RemotingObj;namespace RemotingClient{ public partial class Form1 : Form { public Form1() { InitializeComponent(); this.toolStripStatusLabel1.ForeColor = Color.Red; } public ICom obj = null; private void Form1_Load(object sender, EventArgs e) { try { ChannelServices.RegisterChannel(new TcpClientChannel(), false); obj = (ICom)Activator.GetObject(typeof(ICom), "tcp://200.1.3.27:1234/abc"); if (obj != null) { this.toolStripStatusLabel1.Text = "与服务器连接成功!"; } } catch (Exception ex) { this.toolStripStatusLabel1.Text = ex.Message; } } private void button1_Click(object sender, EventArgs e) { if (obj != null && !string.IsNullOrEmpty(this.textBox1.Text)) { obj.SendMs(this.textBox1.Text); } } }}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值