• λ我爱Aspx >> Asp.Net >> Microsoft .Net Remoting系列专题之三:Remoting事件处理全接触
  • Microsoft .Net Remoting系列专题之三:Remoting事件处理全接触

  • :aspxer  Դ:internet  :2007-5-15 20:46:12  ؼ:.net
  • if (txtInfo.Text != string.Empty)

    {

    ServerForm.Obj.BroadCastingInfo(txtInfo.Text);

    }

    else

    {

    MessageBox.Show("请输入信息!");

    }

    但是很简单,就是调用远程对象的发送消息方法而已。

    现在该实现客户端了。我们可以参照前面的例子,只是把服务端改为客户端而已。另外考虑到序列化安全级别的问题,所以代码会是这样:

    private void ClientForm_Load(object sender, System.EventArgs e)

    {

    BinaryServerFormatterSinkProvider serverProvider = new

    BinaryServerFormatterSinkProvider();

    BinaryClientFormatterSinkProvider clientProvider = new

    BinaryClientFormatterSinkProvider();

    serverProvider.TypeFilterLevel = TypeFilterLevel.Full;

    IDictionary props = new Hashtable();

    props["port"] = 0;

    HttpChannel channel = new HttpChannel(props,clientProvider,serverProvider);

    ChannelServices.RegisterChannel(channel);

    watch = (IBroadCast)Activator.GetObject(

    typeof(IBroadCast),"http://localhost:8080/BroadCastMessage.soap");

    watch.BroadCastEvent += new BroadCastEventHandler(BroadCastingMessage);

    }

    注意客户端通道的端口号应设置为0,这表示客户端自动选择可用的端口号。如果要设置为指定的端口号,则必须保证与服务端通道的端口号不相同。

    然后是,BroadCastEventHandler委托的方法:

    public void BroadCastingMessage(string message)

    {

    txtMessage.Text += "I got it:" + message;

    txtMessage.Text += System.Environment.NewLine;

    }

    客户端界面如图:

    Ҷƪл˵?
  • һƪRemoting服务端和客户端程序该这样模式来写
    һƪMicrosoft .Net Remoting系列专题之一:.Net Remoting基础篇