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