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


    学习MSMQ期间做的测试程序。
    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(003));
                    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(003));
                    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类
        }

    }

    要使用MSMQ必须安装win消息队列组件。
  • 相关阅读:
    Linux下权限的解释
    【小小帝国】部分攻略
    php上传大文件时php.ini的几处设置
    SSH登录常用工具推荐
    梅兰文化http://www.tzhl.gov.cn/col/col894/index.html
    PHP上传大文件 分割文件上传
    ssh连接Linux很慢,且ssh传输文件很慢的解决方案
    vi命令使用
    SWFUpload 2.5.0版 官方说明文档 中文翻译版
    利用Flash上传大文件,swfupload修改说明flash制作教程
  • 原文地址:https://www.cnblogs.com/tuyile006/p/1100275.html
Copyright © 2020-2023  润新知