首页 > 技术文章 > MSMQ怎么样接收Byte[]类型的消息

gougou1981 2020-08-07 11:00 原文

直接上代码:

参考文章:https://stackoverflow.com/questions/3256280/how-to-convert-msmq-message-body-into-byte?r=SearchResults

System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MSMQReader
{
    public class MSMQRead
    {
        public void DoIt()
        {
            var messageQueue = new System.Messaging.MessageQueue(@"FormatName:Direct=OS:<HOST NAME>\Private$\<PRIVATE QUEUE NAME>");
            var message = messageQueue.Receive(new TimeSpan(0, 0, 3)); // 3 SECOND TIMEOUT
            var messageBody = ConvertStreamToByteArray(message.BodyStream);
        }


        public byte[] ConvertStreamToByteArray(System.IO.Stream input)
        {
            byte[] buffer = new byte[16 * 1024];

            using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
            {
                int chunk;

                while ((chunk = input.Read(buffer, 0, buffer.Length)) > 0)
                {
                    ms.Write(buffer, 0, chunk);
                }

                return ms.ToArray();
            }
        }
    }

 

推荐阅读