技术开发 频道

利用message queue实现aspx与winform通信


【IT168技术文档】

  先在本机(本文中的计算机名为jimmyibm)安装message queue(消息队列),别告诉我你不会安装.(就跟安装IIS差不多的)

  安装好后,打开 "计算机管理-->服务和应用程序-->消息队列-->专用队列",新一个专用队列,命名为msmqdemo

  建好后,在msmqdemo上右击,查看属性,可以看到"jimmyibm\private$\msmqdemo"这就是该队列的完整标识

  好了,开始写代码

  建一个解决方案,在解决方案中加一个winform的项目,添加System.Messgeing的引用

  winform的主要代码:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Messaging; namespace QueueStudy { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void btnSend_Click(object sender, EventArgs e) { if (txtSend.Text.Trim() == "") { MessageBox.Show("请输入要发送的message!"); txtSend.Focus(); return; } //完整队列格式为: 计算机名\private$\队列名称 (专用队列) MessageQueue mq = new MessageQueue("jimmyibm\\private$\\MSMQDemo"); System.Messaging.Message msg = new System.Messaging.Message(); msg.Body = txtSend.Text.Trim(); msg.Formatter = new System.Messaging.XmlMessageFormatter(new Type[] { typeof(string) }); mq.Send(msg); } private void btnReceive_Click(object sender, EventArgs e) { MessageQueue mq = new System.Messaging.MessageQueue("jimmyibm\\private$\\MSMQDemo"); //同步接收,直到得到一条消息为止,如果消息队列为空,会一直阻塞 System.Messaging.Message msg = mq.Receive(); msg.Formatter = new System.Messaging.XmlMessageFormatter(new Type[] { typeof(string) }); this.txtReceive.Text = msg.Body.ToString(); } } }
0
相关文章