wcf通过binding进行通信
服务端
class Program { static void Main(string[] args) { Uri listenURI = new Uri("http://127.0.0.1:9988/listener"); Binding basicBinding = new BasicHttpBinding(); //通过绑定构建信道监听器工厂 IChannelListener<IReplyChannel> channelListener = basicBinding.BuildChannelListener<IReplyChannel>(listenURI); channelListener.Open(); //创建监听信道 IReplyChannel channel = channelListener.AcceptChannel(TimeSpan.MaxValue); channel.Open(); Console.WriteLine("正在监听。。。。"); while (true) { //接受客户端的调用请求 RequestContext context = channel.ReceiveRequest(TimeSpan.MaxValue); Console.WriteLine("接受到消息" + context.RequestMessage); context.Reply(CreateReplyMessage(basicBinding)); } } static Message CreateReplyMessage(Binding binding) { string action = "urn:abc"; string body = "reply "; return Message.CreateMessage(binding.MessageVersion, action, body); } }
客户端
static void Main(string[] args) { Uri listenURI = new Uri("http://127.0.0.1:9988/listener"); Binding basicHttpBinding = new BasicHttpBinding(); //通过banding创建一个请求的的信道工厂 IChannelFactory<IRequestChannel> channelFactory = basicHttpBinding.BuildChannelFactory<IRequestChannel>(); channelFactory.Open(); EndpointAddress endpointAddress = new EndpointAddress(listenURI); //通过信道工厂创建信道 IRequestChannel requestChannel = channelFactory.CreateChannel(endpointAddress); requestChannel.Open(); Message replyMessage = requestChannel.Request(CreateRequestMessage(basicHttpBinding)); Console.WriteLine("正在创建请求"); Console.WriteLine("已经回复的请求:"+ replyMessage); } static Message CreateRequestMessage(Binding binding) { string action = "urn:abc"; string body = "this is request"; return Message.CreateMessage(binding.MessageVersion, action, body); }
 
                    
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号