监听端创建信道Listener,代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using System.ServiceModel.Channels; namespace Artech.MessagingVisBinding.Listener
{
class Program
{
static void Main(string[] args)
{
Uri listenUri = new Uri("http://127.0.0.1:9999/listener");
Binding binding = new BasicHttpBinding();
IChannelListener<IReplyChannel> channelListener = binding.BuildChannelListener<IReplyChannel>(listenUri);
channelListener.Open();
IReplyChannel channel = channelListener.AcceptChannel(TimeSpan.MaxValue);
channel.Open();
Console.WriteLine("开始监听。。。");
while (true)
{
RequestContext requestContext = channel.ReceiveRequest(TimeSpan.MaxValue);
Console.WriteLine("接受到请求信息:\n{0}",requestContext.RequestMessage);
requestContext.Reply(CreateReplyMessage(binding));
}
} static Message CreateReplyMessage(Binding binding)
{
string action = "urn:artech.com/reply";
string body = "这是一个简单的回复消息!";
return Message.CreateMessage(binding.MessageVersion, action, body);
}
}
}

发送端创建信息Sender,代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel.Channels;
using System.ServiceModel; namespace Artech.MessagingViaBinding.Sender
{
class Program
{
static void Main(string[] args)
{
Uri listenUri = new Uri("http://127.0.0.1:9999/listener");
Binding binding = new BasicHttpBinding();
IChannelFactory<IRequestChannel> channelFactory = binding.BuildChannelFactory<IRequestChannel>();
channelFactory.Open();
IRequestChannel channel = channelFactory.CreateChannel(new EndpointAddress(listenUri));
channel.Open();
Message replyMessage = channel.Request(CreateRequestMessage(binding));
Console.WriteLine("接收到的消息\n{0}", replyMessage); Console.Read();
} static Message CreateRequestMessage(Binding binding)
{
string action = "urn:artech.com/request";
string body = "这是一个简单的请求消息!";
return Message.CreateMessage(binding.MessageVersion, action, body);
}
}
}

最新文章

  1. [Quartz笔记]玩转定时调度
  2. 数据库的Disk Space usage
  3. 全面总结Java泛型
  4. jQuery操作列表数据转成Json再输出为html dom树
  5. jdk代理和cglib代理
  6. [IT思考]技术领先对手多少算好?
  7. KSImageNamed-Xcode-master 对项目中图片提供自动提示功能的插件
  8. 使用Maven将Hadoop2.2.0源码编译成Eclipse项目
  9. ecstore 后台登陆跳转到 api失败,中心请求网店API失败
  10. iOS网络
  11. 从ipad相机相册读取相片并保存
  12. wpa_cli 连接 wifi
  13. javase
  14. Elasticsearch集群调优
  15. 搜索核心原理之网页和查询的相关性——TF-IDF
  16. ceph 底层代码分享
  17. DevExpress 控件使用菜单栏之BarManager
  18. 逆向工程-对native层的一次简单逆向实践
  19. 转:ffmpeg time_base详解
  20. 今天被坑了,而且被坑的好爽! 该死的UTF-8 有 BOM 格式编码

热门文章

  1. django-simple-captcha
  2. django-mysqlclient_1193错误
  3. 笔记-flask基础操作
  4. NumPy库入门
  5. Android 本应用数据清除管理器DataCleanManager
  6. Android 游标
  7. mac上MySQLdb问题解决
  8. 初学JS——实现基于计时器的小游戏。
  9. Spring进阶—如何用Java代码实现邮件发送(一)
  10. 《Cracking the Coding Interview》——第9章:递归和动态规划——题目10