zoukankan      html  css  js  c++  java
  • Remoting配置记录

    1.适用范围:
    .Net平台下服务器数据通信,支持多信道如:http,tcp,icp,自定义信道
    http:默认情况下80端口未被防火墙通过。
    tcp:必须配置防火墙,在内部网中使用更加有效。
    IPc:最适合在单个系统上进行跨进程的通信,使用WINDOWS跨进程通信机制,速度最快。

    2.简单Remoting服务器配置
    TcpServerChannel tcp =new TcpServerChannel(8086);;
    HttpServerChannel Http=new HttpServerChannel(8087) ;
    IpcServerChannel Ipc =new IpcServerChannel("icpServer");
    ChannelServices.RegisterChannel(tcp, false);
    ChannelServices.RegisterChannel(Http, false);
    ChannelServices.RegisterChannel(Ipc, false);
    //注:rc.Hello为一个类型:加上[Serializable] 并继承MarshalByRefObjectSingleCall:不保存客户对象,使用完即删除
    Singleton:服务器的所有客户共享对象
    RemotingConfiguration.RegisterWellKnownServiceType(typeof(rc.Hello), "hi", WellKnownObjectMode.SingleCall);

    3.客户端调用
    ChannelServices.RegisterChannel(new TcpClientChannel(), false);
    rc.Hello hello = (rc.Hello)RemotingServices.Connect(typeof(rc.Hello), "tcp://192.168.1.12:8086/hi");


    4.使用配置文件配置 remoting.config
    rc.Hello表示类名,rc表示引用的dll名称
    一。已知对象服务器端
    1)

    <configuration>
      
    <system.runtime.remoting>
        
    <application name="Hello">
          
    <service>
            
    <wellknown mode="SingleCall" type="rc.Hello,rc" objectUri="hi">          
            
    </wellknown>
          
    </service>
          
    <channels>
            
    <channel ref="tcp" port="8086" displayName="Tcp通道"></channel>
            
    <channel ref="http" port="8087" displayName="http通道"></channel>
            
    <channel ref="ipc" portName="8086" displayName="ipc通道"></channel>
          
    </channels>
        
    </application>
      
    </system.runtime.remoting>
    </configuration>

    将上述文件保存为remoting.config
    服务器端执行
    RemotingConfiguration.Configure("Remoting.config"文件路径,false);

    2)已知对象客户端

    <configuration>
      
    <system.runtime.remoting>
        
    <application name="Client">
          
    <service>
            
    <client displayName="Hello client">
            
    <wellknown type="rc.Hello,rc" url="tcp://192.168.1.12:8086/hi" />
                
    </client>
            
    </wellknown>
          
    </service>
          
    <channels>
            
    <channel ref="tcp" displayName="Tcp通道"></channel>
          
    </channels>
        
    </application>
      
    </system.runtime.remoting>
    </configuration>

    客户端执行
    RemotingConfiguration.Configure("Remoting.config"文件路径,false);
    二。客户激活的对象的服务器配置
    1)服务器端

    代码
    <configuration>
      
    <system.runtime.remoting>
        
    <application name="Hello">
          
    <service>
          
    <activated type="rc.Hello,rc" />
          
    </service>
          
    <channels>
            
    <channel ref="tcp" port="8086" displayName="Tcp通道"></channel>
            
    <channel ref="http" port="8087" displayName="http通道"></channel>
            
    <channel ref="ipc" portName="8086" displayName="ipc通道"></channel>
          
    </channels>
        
    </application>
      
    </system.runtime.remoting>
    </configuration>

    2)客户端

    代码
    <configuration>
      
    <system.runtime.remoting>
        
    <application name="Client">
          
    <service>
            
    <client displayName="Hello client" url="http://192.168.1.12:8087/hi">
                
    </client>
            
    </wellknown>
          
    </service>
          
    <channels>
            
    <channel ref="http" displayName="http通道"></channel>
          
    </channels>
        
    </application>
      
    </system.runtime.remoting>
    </configuration>


  • 相关阅读:
    世界各个地区WIFI 2.4G及5G信道划分表(附无线通信频率分配表)
    树莓派-基于raspivid实现拍视频
    在树莓派3b or 3a or 4a or 4b上搭建OpenWebRX
    树莓派4装热点板不启动咋板?
    portapack h1 买回来刷hackrf与使用说明
    portapack发射GPS的信号实现GPS脱机模拟器
    DMR windows 软件x64
    浅谈iOS多线程
    iOS Sonar 集成流程
    不要相信程序员在加班时间写的代码
  • 原文地址:https://www.cnblogs.com/qingyi/p/1651418.html
Copyright © 2011-2022 走看看