跟着Artech学习WCF扩展(1) Binding进行通信

简介: 这个demo简单 就一个服务器段的一个客户端的 主要是注释 Server的 using System; using System.Collections.Generic; using System.

这个demo简单 就一个服务器段的一个客户端的 主要是注释

Server的

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

namespace QqServer
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建Uri对象,代表监听的URI: 
            Uri address = new Uri("http://127.0.0.1:9999/messagingviabinding");
            //创建BasicHttpBinding对象,我们正是通过它来使用所有的通信功能:
            BasicHttpBinding binding = new BasicHttpBinding();
            //通过binding对象创建IChannelListener对象,并调用Open方法打开它:
            IChannelListener<IReplyChannel> channelListener = binding.BuildChannelListener<IReplyChannel>(address);
            channelListener.Open();
           //通过IChannelListener对象创建IReplyChannel 并调用Open方法打开它: 
            IReplyChannel channel = channelListener.AcceptChannel();
            channel.Open();
            Console.WriteLine("Begin to listen  ");
            while (true)
            {
                //在While循环中监听来自client端的request,一旦request抵达, 
                //调用IReplyChannel 的ReceiveRequest方法,并得到一个RequestContext 对象,
                //通过RequestContext 对象可以得到request message并打印出来:
                RequestContext context = channel.ReceiveRequest(new TimeSpan(1, 0, 0));
                Console.WriteLine("Receive a request message:\n{0}", context.RequestMessage);
                //创建一个Reply message,借助得到的RequestContext 对象发送回client端:
                Message replyMessage = Message.CreateMessage(MessageVersion.Soap11, "http://artech.messagingviabinding", "This is a mannualy created reply message for the purpose of testing");
                context.Reply(replyMessage);

            }
        }
    }
}
Client端的
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using System.ServiceModel.Channels;
using System.Xml;

namespace QqClient
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建EndpointAddress 对象,这和Server的Uri一致,代表请求的地址
            EndpointAddress address = new EndpointAddress("http://127.0.0.1:9999/messagingviabinding");
            //创建BasicHttpBinding对象,通过实现向Server端的发送Request,并接收Reply:
            BasicHttpBinding binding = new BasicHttpBinding();
            //通过Binding对象创建IChannelFactory对象并调用Open方法打开它:
            IChannelFactory<IRequestChannel> chananelFactory = binding.BuildChannelFactory<IRequestChannel>();
            chananelFactory.Open();
            //通过IChannelFactory对象创建IRequestChannel 对象并调用Open方法打开它:
            IRequestChannel channel = chananelFactory.CreateChannel(address);
            channel.Open();
            //创建Request message通过Channel对象发送到Server端,
            //Request方法调用会返回一个Message对象代表从Server端发送回来的Reply message:
            Message requestMessage = Message.CreateMessage(MessageVersion.Soap11, "http://artech/messagingviabinding", "The is a request message manually created for the purpose of testing.");
            Message replyMessage = channel.Request(requestMessage);
            Console.WriteLine("Receive a reply message:\n{0}", replyMessage);

            channel.Close();
            chananelFactory.Close();
            Console.Read();


        }
    }
}
test
相关文章
|
网络协议 网络架构 Windows
框架学习——WCF框架
框架学习——WCF框架
304 0
|
XML 网络协议 IDE
WCF基础教程(三)——WCF通信过程及配置文件解析
WCF基础教程(三)——WCF通信过程及配置文件解析
383 0
|
JavaScript
|
安全 C#
WCF技术我们应该如何以正确的方式去学习掌握
一、WCF技术我该如何学习?       阿笨的回答是:作为初学者的我们,那么请跟着阿笨一起玩WCF吧,阿笨将带领大家如何以正确的姿势去掌握WCF技术。由于WCF技术知识点太多了,就纯基础概念性知识都可以单独出一本书来讲解,本次分享课程《C#面向服务编程技术WCF从入门到实战演练》开课之前,阿笨还是希望从没了解过WCF技术的童鞋们提前先了解一下WCF技术,至少要明白WCF技术的ABC三要素分别指的是什么。
1201 0
|
安全 网络协议 开发工具
WCF 通信接口
引用:http://baike.baidu.com/view/1140438.htm 概述   Windows Communication Foundation(WCF)是由微软发展的一组数据通信的应用程序开发接口,可以翻译为Windows通讯接口,它是.NET框架的一部分,由 .NET Framework 3.0 开始引入,与 Windows Presentation Foundation及 Windows Workflow Foundation并行为新一代 Windows 操作系统以及 WinFX 的三个重大应用程序开发类库。
1187 0
|
前端开发 .NET 开发框架
Wcf扩展
ASP.NET MVC和WCF真是微软两个很棒的框架,设计的很好,可扩展性非常强,到处都是横切、管道。 以前写过一篇MVC流程的文章,http://www.cnblogs.com/lovecindywang/archive/2010/12/02/1894740.html主要是使用了MVC的各种扩展。
810 0
|
前端开发
WCF更新服务引用报错的原因之一
WCF更新服务引用报错的原因之一