• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
鱼要的是海洋,鸟要的是天空,我要的是自由!
平凡的人不平凡的人生
博客园    首页    新随笔    联系   管理    订阅  订阅

DotNET分布式编程之COM+(二)

第一部分:回顾:
一、COM+中的对象构造服务
二、COM+中的基于角色的安全性

第二部分:新课:
一、COM+中的共享属性管理器介绍
二、使用.NET类库访问Windows队列,两个例子:一个例子用于发送消息,一个例子用户接收消息
发送方代码:
using System;
using System.Messaging;

namespace Sender
{
 class SenderMain
 {
      static void Main(string[] args)
      {
    try
    {
 
     if(MessageQueue.Exists(@".\private$\MyPrivateQ")==false)
     {
      MessageQueue.Create(@".\private$\MyPrivateQ");
     }
     // 创建队列类实例
     MessageQueue mq = new MessageQueue(@".\private$\MyPrivateQ");

     //创建消息实例
     Message msg = new Message();
     msg.Label = "A message label";
     msg.Body = "The message body";
     // 等待接收的时间为5秒
     msg.TimeToBeReceived = TimeSpan.FromSeconds(15);
     // 如果超时,消息将删除被加入到死信队列.(空字母消息)
     msg.UseDeadLetterQueue=true;
     // 发送消息到队列
     mq.Send(msg);
     Console.WriteLine("消息发送成功!");
    }
    catch(Exception ex)
    {
     Console.WriteLine(ex.Message);
    }
      }
 }
}
接收方代码:
using System;
using System.Messaging;

namespace Receiver
{
 class ReceiverMain
 {
  static void Main(string[] args)
  {
         //打开队列
         MessageQueue mq = new MessageQueue(@".\private$\MyPrivateQ");

         // 创建一个type数组,该数组包含消息中可能会出现的类型
         Type[] expectedTypes = new Type[] {typeof(string), typeof(float)};

         // 用该类型数组初始化xmlmessageformatter
         mq.Formatter = new XmlMessageFormatter(expectedTypes);

         // 从队列读出消息
         while (true)
         {
            Message msg = mq.Receive(); // <-- blocks until message arrives
            Console.WriteLine(msg.Body.ToString());
         }

  }
 }
}


三、COM+中的队列组件
采用书上的例子,四个项目:队列组件+远程对象+服务器+客户端


第三部分:总结,新课预告

posted @ 2007-01-10 00:55  伊凡  阅读(406)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3