C# Hprose轻量级、跨语言、跨平台的面向对象的高性能远程动态通讯中间件
Hprose (High Performance Remote Object Service Engine) 是一个MIT开源许可的新型轻量级跨语言跨平台的面向对象的高性能远程动态通讯中间件。它支持众多语言,例如nodeJs, C++, .NET, Java, Delphi, Objective-C, ActionScript, JavaScript, ASP, PHP, Python, Ruby, Perl, Golang 等语言,通过 Hprose 可以在这些语言之间实现方便且高效的互通。
Hprose 易学易用,且功能强大,您只需很短时间的学习,就可以用它方便地构建出跨语言跨平台分布式的电信级应用系统。
国内码云git项目下载地址
https://gitee.com/andot/hprose-dotnet
github地址
https://github.com/hprose/hprose-dotnet
服务端代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Hprose.Server;namespace HproseTcpServerTest {class Program {public static string Hello(string name) {return "Hello " + name + "!";}public static List<object> GetList(string word){List<object> list = new List<object>();for (int i = 0; i < 100; i++) {list.Add(word);}return list;}static void Main(string[] args) {try{HproseTcpListenerServer tcpserver = new HproseTcpListenerServer("tcp4://127.0.0.1:4321/");tcpserver.Add("Hello", typeof(Program));tcpserver.Add("GetList", typeof(Program));tcpserver.Start();HproseHttpListenerServer httpserver = new HproseHttpListenerServer("http://localhost:8888/");httpserver.Add("Hello", typeof(Program));httpserver.Add("GetList", typeof(Program));httpserver.Start();Console.WriteLine("服务已启动");Console.ReadKey();tcpserver.Stop();httpserver.Stop();}catch (Exception ex){Console.WriteLine("启动异常:"+ex.Message);} }}
}
客户端代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Hprose.Client;
using System.Diagnostics;
using System.Threading;namespace HproseTcpClientTest
{public interface IHello{string Hello(string name);/// <summary>/// 得到集合/// </summary>/// <param name="word"></param>/// <returns></returns>List<object> GetList(string word);}class Program{static IHello hello;static void Test(string data) {Stopwatch stopwatch = new Stopwatch();stopwatch.Start();for (int i = 0; i < 1000; i++) {//hello.Hello(data);hello.GetList(data);}stopwatch.Stop();Console.WriteLine(stopwatch.Elapsed);}static void Main(string[] args){HproseClient client = HproseClient.Create("tcp4://127.0.0.1:4321/");hello = client.UseService<IHello>();//20秒后执行 while (true){if (DateTime.Now.Second == DateTime.Parse("2018-04-19 16:43:20").Second){break;}Thread.Sleep(500);}Console.WriteLine("TCP");//Console.WriteLine(hello.Hello("World"));Test("World");Test("".PadRight(512, '苏'));Test("".PadRight(1024, '苏'));Test("".PadRight(2 * 1024, '苏'));Test("".PadRight(4 * 1024, '苏'));Test("".PadRight(8 * 1024, '苏'));Test("".PadRight(16 * 1024, '苏'));Test("".PadRight(32 * 1024, '苏'));Test("".PadRight(64 * 1024, '苏'));Console.WriteLine("完成");client = HproseClient.Create("http://localhost:8888/");hello = client.UseService<IHello>();Console.WriteLine("HTTP");//Console.WriteLine(hello.Hello("World"));Test("World");Test("".PadRight(512, '苏'));Test("".PadRight(1024, '苏'));Test("".PadRight(2 * 1024, '苏'));Test("".PadRight(4 * 1024, '苏'));Test("".PadRight(8 * 1024, '苏'));Test("".PadRight(16 * 1024, '苏'));Test("".PadRight(32 * 1024, '苏'));Test("".PadRight(64 * 1024, '苏'));Console.WriteLine("完成");Console.ReadKey();// client.Invoke<string>("hello", new Object[] { "Async World" }, result => Console.WriteLine(result));}}
}
demo下载地址
https://download.csdn.net/download/u011511086/10360956
C# Hprose轻量级、跨语言、跨平台的面向对象的高性能远程动态通讯中间件相关推荐
- Hprose 是轻量级跨语言跨平台的面向对象的高性能远程动态通讯中间件
High Performance Remote Object Service Engine: 一个MIT开源许可的新型轻量级跨语言跨平台的面向对象的高性能远程动态通讯中间件 hprose 是一个新的远 ...
- 跨平台、跨语言应用开发工具,Elements 介绍
目录 1,Elements 介绍 2,Elements 版本 3,Elements 能干嘛 4,Elements IDES 5,Elements 工具 1,Elements 介绍 RemObject ...
- 跨语言rpc框架Thrift
RPC 全称 Remote Procedure Call--远程过程调用.RPC技术简单说就是为了解决远程调用服务 的一种技术,使得调用者像调用本地服务一样方便透明 Thrift的定义 Thrif ...
- server如何调用 thrift_一文带你了解 Thrift,一个可伸缩的跨语言 RPC 框架(pinpoint 源码分析系列)...
Thrift 是什么研究分布式调用链工具pinpoint的时候,在源码里看到了Thrift相关的代码,所以来了兴趣,想研究研究这个框架.Thrift 目前是 Apache 的一个项目,但是它是由fac ...
- 混合编程黑科技:跨语言编程问题迎刃而解的3个要点
首先,混合编程是什么鬼? 这个世界上编程语言真不少,光常用就有:C.C++.Java.C#.Objective-C.Javascript.Python.Lua.Swift等等等,遑论一些专业性比较强的 ...
- 跨语言RPC框架Thrift详解
一. 概念 Apache的Thrift软件框架,是用来进行可伸缩的.跨语言的服务开发,它通过一个代码生成引擎来构建高效.无缝的服务,这些服务能够实现跨语言调度,目前支持的语言有: C++, Java, ...
- 跨语言调用Hangfire定时作业服务
背景 Hangfire允许您以非常简单但可靠的方式执行后台定时任务的工作.内置对任务的可视化操作.非常方便. 但令人遗憾的是普遍都是业务代码和hagnfire服务本身聚合在一个程序中运行,极大的限制了 ...
- 什么是 Thrift(RPC)?一种接口描述语言和二进制通讯协议,用来定义和创建跨语言的服务
Table of Contents 什么是Thrift 架构 什么是RPC框架? Thrift的协议栈结构 优点 创建一个Thrift服务 Thrift的第一个java小实例 Thrift是一种接口描 ...
- Atitit.跨语言反射api 兼容性提升与增强 java c#。Net php js
Atitit.跨语言反射api 兼容性提升与增强 java c#.Net php js 1. 什么是反射1 1.1. 反射提供的主要功能:2 1.2. 实现反射的过程:2 ...
- Mr.Fang出品:银企互联(NC模式)开发者版本(.NET WebService中间件,Java、PHP、Python等跨语言测试通过)
相关介绍文章,放入本人的公众号("开发谈"系列),方便读者查阅. 本开发者版本特点: ERP系统只需要通过HTTP协议将参数和发送内容一次性POST到WebService指定页面, ...
最新文章
- 分布式Session共享解决方案
- 2017年计算机导论试题,2017年云南农业大学基础与信息工程学院813计算机导论与数据结构考研题库...
- 容器混合云发展引争议,专家亚马逊云科技中国峰会共探讨
- MyEclipse10 离线图文安装SVN插件教程
- python处理csv文件计算均值_PYTHON实现对CSV文件多维不同单位数据的归一化处理
- discuz 3.1 修改浏览器顶部小图标
- 回顾RHCE——邮件收发实验
- C# 二维码生成代码
- C++实现人机对战围棋(使用Leela Zero权重)-自动提子
- python结合mysql 购物管理系统
- T83723 数人wjh --题解
- vue 数据看板大屏适配方案
- linux进程线程-alarm闹钟函数
- 操作系统简述复习笔记
- C++ 中ANSI/ASII/GB2312/Unicode/Utf-8编码的区别
- (蓝桥杯)数字三角形。。(最简单的dp题)
- 最长匹配括号子序列问题
- R语言将向量数据按照行方式转化为矩阵数据(设置参数byrow为TRUE)、计算矩阵数据的特征值(eigenvalue)
- 在Linux上部署一些简单的服务,Linux进阶必看,定时任务
- 前端Ts大写日期转化日期格式
热门文章
- 你知道这些SOLIDWORKS零件图知识吗?
- 安卓编程 Sqlite的入门编程
- 《电路》邱关源 思维导图 第三章 电阻电路的一般分析
- nvidia驱动缓存能清理吗?
- Mac os 10.5.8, 驱动声卡成功
- 人性的弱点【了解鱼的需求】
- ModifyStyle()调用不起作用
- 孤儿进程/僵尸进程/守护进程
- 河南计算机职称不考了,河南省评定中级工程师职称是否还要求计算机应用能..._职称英语考试_帮考网...
- 小米账号无故泄露 手机安全问题何解?