zoukankan      html  css  js  c++  java
  • WCF信道绑定代码

    监听端创建信道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("接受到请求信息:
    {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);
            }
        }
    }
    View Code

    发送端创建信息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("接收到的消息
    {0}", replyMessage);
    
                Console.Read();
            }
    
            static Message CreateRequestMessage(Binding binding)
            {
                string action = "urn:artech.com/request";
                string body = "这是一个简单的请求消息!";
                return Message.CreateMessage(binding.MessageVersion, action, body);
            }
        }
    }
    View Code
  • 相关阅读:
    Python写一个简单的爬虫
    Fully Convolutional Networks for Semantic Segmentation 译文
    Numpy中矩阵和数组的区别
    Linux(ubuntu)软件的安装
    Linux 打包和压缩
    Linux的软连接、硬链接和find命令
    Linux组管理、用户管理、查看用户信息、usermod、which、切换用户、修改文件具体权限
    Linux用户权限
    Linux远程管理命令
    Linux文件和目录相关的命令
  • 原文地址:https://www.cnblogs.com/chinaagan/p/3383375.html
Copyright © 2011-2022 走看看