技术开发 频道

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


【IT168技术文档】

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 } }
0
相关文章