高性能Socket组件和RPC,让你像写本地代码一样开发网络应用和分布式程序
最近想试试C#能不能写出高性能的分布式组件,于是写了一个双工RPC,也当练手,下面是单连接的测试结果,非常给力。
机器配置:U:E1230-v2,内存:ddr3-8G
1、递归调用
过程:Client向Server调用方法,Server的方法内部再调用一次Client的方法,拿到结果后计算结果返回给Client.

2、单向调用
过程:client调用Server的方法
哈,性能非常给力吧,我也没想到性能这么给力。
用RPC开发一个分布式应用或者网络应用非常简单,下面粘点代码
Server端:
就这么简单,服务器的类只需要继承自ServerController,里面的方法客户端就能直接调用,图中注释的代码就是代码内部反向调用Client端的方法,方法体内部支持Session上下文,可以很方便的操作,图中的BroadCast方法就是使用Session上下文给所有在线的用户发送广播信息
client端:

就这么简单,只需要提供Server端的方法的接口,就能像使用本地方法一样调用服务器的方法。
图中的ISCaculator接口就是服务器端的Caculator类的接口,可以和图1对比
高性能Socket组件和RPC,让你像写本地代码一样开发网络应用和分布式程序的更多相关文章
- 高性能 Socket 组件 HP-Socket v3.2.1 正式发布
HP-Socket 是一套通用的高性能 TCP/UDP Socket 组件,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++.C ...
- 高性能 Socket 组件 HP-Socket v3.1.3 正式发布
HP-Socket 是一套通用的高性能 Windows Socket 组件,提供服务端组件(IOCP 模型)和客户端组件(Event Select 模型),广泛适用于 Windows 平台的 TCP/ ...
- 【新年呈献】高性能 Socket 组件 HP-Socket v3.1.2 正式发布
HP-Socket 是一套通用的高性能 Windows Socket 组件包,包含服务端组件(IOCP 模型)和客户端组件(Event Select 模型),广泛适用于 Windows 平台的 TCP ...
- 【圣诞呈献】高性能 Socket 组件 HP-Socket v3.1.1 正式发布
HP-Socket 是一套通用的高性能 Windows Socket 组件包,包含服务端组件(IOCP 模型)和客户端组件(Event Select 模型),广泛适用于 Windows 平台的 TCP ...
- 高性能 Socket 组件 HP-Socket v3.2.1-RC5 公布
HP-Socket 是一套通用的高性能 TCP/UDP Socket 组件,包括服务端组件.client组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C+ ...
- 高性能 Socket 组件 HP-Socket v3.2.1-RC4 公布
HP-Socket 是一套通用的高性能 TCP/UDP Socket 组件,包括服务端组件.client组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C+ ...
- 高性能 Socket 组件 HP-Socket v3.2.1-RC2 公布
HP-Socket 是一套通用的高性能 TCP/UDP Socket 组件,包括服务端组件.client组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C+ ...
- 高性能 Socket 组件 HP-Socket v3.2.1 正式公布
HP-Socket 是一套通用的高性能 TCP/UDP Socket 组件,包括服务端组件.client组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C+ ...
- 高性能 Socket 组件 HP-Socket v3.2.1-RC3 公布
HP-Socket 是一套通用的高性能 TCP/UDP Socket 组件,包括服务端组件.client组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统.提供 C/C+ ...
随机推荐
- Sql语句中IN等方面的用法
select * from txt1 select * from txt2 select * from txt1 where name in (select name from txt2 where ...
- C#文本转语音并保存wav和MP3文件
回顾上次写博客至今都有4个多月了,最近工作比较的忙没时间写博文.以后会多坚持写博文,与大家分享下最近遇到的问题.最近因为项目需要,研究了下用C#开发TTS.下面把大体的思路给大家说说,希望对大家有所帮 ...
- spring3.1的BeanFactory与Quartz1.8整合
spring的applicationContext.xml配置文件: 加入 <bean id="myJob" class="org.springframework. ...
- SCGHR_存储过程(eSP_IDChangeStart)_政治面貌为什么不能正确更新
1.问题描述:该SP中姓名,工号能够顾正确修改,但是政治面貌不能,为什么? 2.问题定位:那么该SP中其他设置都是正确的,就不要浪费时间看SP的其他设置,错误源就在 政治面貌 这一小块中. 3.修改: ...
- C# 读取 Access 数据库表的例子
using System;using System.Data;using System.Data.OleDb;using System.Collections.Generic;using System ...
- [网络] SOCKET, TCP/UDP, HTTP, FTP
(一)TCP/UDP,SOCKET,HTTP,FTP简析 TCP/IP是个协议组,可分为三个层次:网络层.传输层和应用层: 网络层:IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议 传 ...
- 通过 Linux 容器进行虚拟化
简单介绍 Linux 容器是一种轻量级"虚拟化"方法,用于在单个控制主机上同一时候执行多个虚拟装置(容器).还有一个可用来描写叙述 Linux 容器所执行的操作的术语是" ...
- Java基础知识强化85:System类之arraycopy()方法(数组拷贝)
1. arraycopy方法(数组拷贝) public static void arraycopy(object src,int srcPos,Object dest,int destPos, int ...
- 为什么要配置path环境变量?
一:关于path环境变量--为了在任意目录下,使用javac/java命令 第一种配置方法: 通过配置path环境变量,我们可以使某个程序,比如javac.exe,在任意目录下都可以运行,而不用跑到j ...
- /etc/motd and /etc/issue
/etc/motd and /etc/issue Bash offers an option to include messages in the /etc/motd and the /etc/iss ...