使用MSMQ传送文字、类、图片

+展开
-C#
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Xml.Serialization;
using System.IO;

namespace msmqApp
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        int iCount = 0;
        /**//// <summary>
        /// 发送文字。
        /// </summary>
        private void btnSend1_Click(object sender, EventArgs e)
        {
            iCount++;
            try
            {
                msgq1.Send("Message Contents: "+iCount);
            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        /**//// <summary>
        /// 接收文字。
        /// </summary>
        private void btnReceive1_Click(object sender, EventArgs e)
        {
            System.Messaging.Message m;
            string str;
            try
            {
                m = msgq1.Receive(new TimeSpan(0, 0, 3));
                str=(string)m.Body;
            }
            catch
            {
                str = "没有返回消息。";
            }
            MessageBox.Show(str);
        }
        /**//// <summary>
        /// 发送一个类。
        /// </summary>
        private void btnSendClass_Click(object sender, EventArgs e)
        {
            Student no1 = new Student();
            no1.name = "my";
            no1.age = 20;
            no1.sex = "男";

            Student no2 = new Student();
            no2.name = "朋友1";
            no2.age = 21;
            no2.sex = "女";

            Student no3 = new Student();
            no3.name = "朋友2";
            no3.age = 22;
            no3.sex = "男";

            no1.friends.Add(no2);
            no1.friends.Add(no3);

            System.Messaging.Message m = new System.Messaging.Message();
            m.Body = no1;
            try
            {
                msgq1.Send(m);
            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.Message + " " + ex.InnerException.Message);
            }
        }
        /**//// <summary>
        /// 接收一个类。
        /// </summary>
        private void btnReceiveClass_Click(object sender, EventArgs e)
        {
            System.Messaging.Message m;
            Student st;
            try
            {
                m=msgq1.Receive(new TimeSpan(0,0,3));
                m.Formatter = new System.Messaging.XmlMessageFormatter(new Type[] { typeof(Student) });
                st = (Student)m.Body;
                string str = " name:"+st.name;
                str += "\r\n age:"+st.age;
                str += "\r\n sex:" + st.sex;
                str += "\r\n friends:\r\n";
                foreach (Student friend in st.friends)
                {
                    str += "[name:" +friend.name;
                    str += " age:" + friend.age;
                    str += " sex:" + friend.sex+"]\r\n";
                }
                MessageBox.Show(str);
            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        /**//// <summary>
        /// 发送图片
        /// </summary>
        private void btnSendImage_Click(object sender, EventArgs e)
        {
            Stream imgStream;
            System.Messaging.Message mImg = new System.Messaging.Message();
            openFileDialog1.Filter = "ImageFile(*.bmp,*.jpg,*.gif)|*.bmp;*.jpg;*.gif";
            openFileDialog1.FilterIndex = 1;
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                if ((imgStream = openFileDialog1.OpenFile()) != null)
                {
                    mImg.BodyStream = imgStream;
                    try
                    {
                        msgq1.Send(mImg);
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                    finally
                    {
                        imgStream.Close();
                    }
                }
            }
        }
        /**//// <summary>
        /// 接收图片
        /// </summary>
        private void btnReceiveImage_Click(object sender, EventArgs e)
        {
            Bitmap bmp;
            Stream imgStream;
            System.Messaging.Message mImg = new System.Messaging.Message();
            bool bReceive = false;
            try
            {
                mImg = msgq1.Receive(new TimeSpan(0, 0, 3));
                bReceive = true;
            }
            catch
            {
                MessageBox.Show("没有接收到消息。");
            }
            try
            {
                if (bReceive)
                {
                    imgStream = mImg.BodyStream;
                    bmp = new Bitmap(imgStream);
                    pictureBox1.Image = bmp;
                }
            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        Student类#region Student类

        public class Student
        {
            public string name;
            public System.Collections.ArrayList friends;
            public int age;
            public string sex;
            public Student()
            {
                friends = new System.Collections.ArrayList();
            }
        }
        #endregion
    }
}


来源:http://www.cnblogs.com/tuyile006/archive/2008/03/11/1100275.html

加支付宝好友偷能量挖...


评论(0)网络
阅读(109)喜欢(1)Asp.Net/C#/WCF