送信側
using System;
using System.Messaging;
using System.Runtime.Serialization.Formatters.Binary;
using System.Threading;
public class QueueSend
{
const string QUEUE_NAME = ".\\Private$\\TEST";
public static void Main(string[] args)
{
MessageQueue queue;
//メッセージキューがある場合はNewする
//ない場合は、作成する
if(MessageQueue.Exists(QUEUE_NAME))
{
queue = new MessageQueue(QUEUE_NAME);
}
else
{
queue = MessageQueue.Create(QUEUE_NAME);
}
BinaryMessageFormatter bf = new BinaryMessageFormatter();
Message msg;
while(true)
{
DateTime d = DateTime.Now;
//メッセージをフォーマットして送信する
msg = new Message(d,bf);
queue.Send(msg);
Thread.Sleep(1000);
}
}
}
受信側
using System;
using System.Messaging;
using System.Threading;
public class QueueRecv
{
const string QUEUE_NAME = ".\\Private$\\Test";
public static void Main(string[] args)
{
MessageQueue queue;
//メッセージキューがある場合はNewする
//ない場合は、作成する
if(MessageQueue.Exists(QUEUE_NAME))
{
queue = new MessageQueue(QUEUE_NAME);
}
else
{
queue = MessageQueue.Create(QUEUE_NAME);
}
//フォーマッタを指定
queue.Formatter = new BinaryMessageFormatter();
Message msg;
DateTime d;
while(true)
{
//メッセージを受信
msg = queue.Receive();
//受信したメッセージを型変換
d = (DateTime)msg.Body;
Console.WriteLine(d.ToString());
}
}
}
0 件のコメント:
コメントを投稿