我们的系统是C/S结构的通信程序,旧版本的程序是Socket实现通信部分。现在开发新版本,其中一部分要和其他公司合作完成,对方提出使用MSMQ实现通信部分,但我对MSMQ不太熟悉,所以请各位高手指点!MSMQ和Socket比较,他们的区别,以及优缺点?谢谢。

解决方案 »

  1.   

    参考:
    http://search.csdn.net/expert/topic/50/5001/2002/10/23/1118013.htm
    http://www.csdn.net/Develop/Read_Article.asp?Id=13612
    http://search.csdn.net/expert/topic/52/5201/2002/10/24/1122478.htmC#:消息队列应用程序
    http://www.yesky.com/20011217/210052.shtml
     
    怎样用MSMQ
    http://www.codeproject.com/csharp/msmqchannel.asp什么是MSMQ
    http://www.microsoft.com/msmq/default.htm深入理解基层知识—— COM+和MTS, DCOM和MSMQ,.NET中的序列化
    http://www.itraining.net.cn/lzh/showArticle.asp?art_ID=694http://www.csdn.net/develop/read_article.asp?id=19216
      

  2.   

    我们先了解一下什么是消息队列(MSMQ)?MSMQ(MicroSoft  Message  Queue,微软消息队列)是 Windows 2000(NT也有MSMQ,WIN95/98/me/xp不含消息队列服务但是支持客户端的运行)操作系统中通讯的基础,也是用于创建分布式、松散连接通讯应用程序的工具。这些应用程序可以通过不同种类的网络进行通讯,也可以与脱机的计算机通讯。
    MSMQ是在多个不同的应用之间实现相互通信的一种异步传输模式,相互通信的应用可以分布于同一台机器上,也可以分布于相连的网络空间中的任一位置。它的实现原理是:消息的发送者把自己想要发送的信息放入一个容器中(我们称之为Message),然后把它保存至一个系统公用空间的消息队列(Message  Queue)中;本地或者是异地的消息接收程序再从该队列中取出发给它的消息进行处理。
    MSMQ的最重要的特点就是,就是在断开连接时保存信息,当连接恢复时发送消息。
    一个应用是客户机之间的异步数据传输。最简单的一个应用是,用户完成当天的工作,晚上在家用电脑上把数据以消息的形式传出去,当用户第二天登陆的时候,办公室的电脑将会接受到传送过来的消息并对数据进行更新。
      

  3.   

    MSMQ创建松散连接通讯应用程序,是不是在实时控制方面不很方便啊?安装MSMQ还分Client和Server吗?消息的容器有几个,分别位于哪些地方?
      

  4.   

    安装完后就该进入实际的开发阶段。打开”控制面板”,”管理工具”,”计算机管理”,”消息队列”。建立一个新的消息队列(专用队列),并为它指定一个名字,假设为TestQueue,这个名字可以随意。也可以通过编程来完成。
    MSMQ创建松散连接通讯应用程序,是不是在实时控制方面不很方便啊?
    可以这样说,虽然支持实时,但是msmq并不是这样用的