明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1228|回复: 3

C#利用XML-RPC实现进程间通讯

[复制链接]
发表于 2020-10-22 11:22:31 | 显示全部楼层 |阅读模式
本帖最后由 MyNameIsLiLei 于 2020-10-22 11:25 编辑

XML-RPC简单易用,可以轻松实现跨语言跨进程通讯,这里先用C#来实现。
服务端代码:

1.启动RPC服务
  1.         protected void InitServer()
  2.         {
  3.             IDictionary props = new Hashtable();
  4.             //XmlRpcClientFormatterSinkProvider

  5.             props["name"] = "Rem";
  6.             props["port"] = 8088;

  7.             channel = new HttpChannel(props, null, new XmlRpcServerFormatterSinkProvider());

  8.             ChannelServices.RegisterChannel(channel, false);

  9.             RemotingConfiguration.RegisterWellKnownServiceType(typeof(Server), "RPC2", WellKnownObjectMode.Singleton);

  10.         }
复制代码
2.定义要被远程调用的方法接口
  1.   public interface IServer
  2.     {
  3.         [XmlRpcMethod("SayHello")]
  4.         string SayHello();
  5.     }
复制代码
3.创建类实现2中的接口
  1.   public class Server : MarshalByRefObject, IServer
  2.     {
  3.         public string SayHello()
  4.         {
  5.           return "Hello";
  6.         }
  7.     }
复制代码



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2020-10-22 14:25:59 | 显示全部楼层
客户端代码:
1.定义要被远程调用的方法接口
  1. public interface IRPCMethod
  2. {

  3.     [XmlRpcMethod("SayHello")]
  4.     string SayHello();
  5. }
复制代码


2.调用
  1.     private static void Main(string[] args)
  2.     {
  3.         var chnl = new HttpChannel(null, new XmlRpcClientFormatterSinkProvider(), null);
  4.         ChannelServices.RegisterChannel(chnl, false);

  5.         svr = (IRPCMethod)Activator.GetObject(typeof(IRPCMethod), "http://localhost:8088/RPC2");
  6.         Console.WriteLine("成功注册信道");

  7.         string str = svr.SayHello();
  8.         Console.WriteLine(str);
  9.     }
 楼主| 发表于 2020-10-22 14:27:56 | 显示全部楼层
需要添加引用System.Runtime.Remoting
发表于 2020-10-23 08:33:11 | 显示全部楼层
还在学习C#中,还没到进程部分呢,关注一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 06:46 , Processed in 0.156691 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表