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>


  • 相关阅读:
    MSSQL查询表占用空间
    JS字典
    匹配是否指定主域名
    站点文件删除不了提示权限不足
    事件委托发布-订阅
    微信中打开第三方应用
    以Spring Bean配置文件为例解释 xmlns,xmlns:xsi,xsi:schemaLocation
    Hdfs的读出机制
    Hdfs的写入机制
    spring常用注解的作用
  • 原文地址:https://www.cnblogs.com/qingyi/p/1651418.html
Copyright © 2011-2022 走看看