高性能Socket组件和RPC,让你像写本地代码一样开发网络应用和分布式程序
2016-01-12 22:18
603 查看
最近想试试C#能不能写出高性能的分布式组件,于是写了一个双工RPC,也当练手,下面是单连接的测试结果,非常给力。
机器配置:U:E1230-v2,内存:ddr3-8G
1、递归调用
过程:Client向Server调用方法,Server的方法内部再调用一次Client的方法,拿到结果后计算结果返回给Client.
![](https://oscdn.geek-share.com/Uploads/Images/Content/201911/29/71bbd99a4e6eb6a9757f341b5986ee9f.jpg)
2、单向调用
过程:client调用Server的方法
![](https://oscdn.geek-share.com/Uploads/Images/Content/201911/29/81a3ae0f78e98c1e12aa904469099c23.jpg)
哈,性能非常给力吧,我也没想到性能这么给力。
用RPC开发一个分布式应用或者网络应用非常简单,下面粘点代码
Server端:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201911/29/bc6b5f2eec13d504180ab439600c12fa.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201911/29/c578d93dbd22d6628d1e27542d482921.jpg)
就这么简单,服务器的类只需要继承自ServerController,里面的方法客户端就能直接调用,图中注释的代码就是代码内部反向调用Client端的方法,方法体内部支持Session上下文,可以很方便的操作,图中的BroadCast方法就是使用Session上下文给所有在线的用户发送广播信息
client端:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201911/29/0f9d25da38d373c7e440f18be20541bf.jpg)
就这么简单,只需要提供Server端的方法的接口,就能像使用本地方法一样调用服务器的方法。
图中的ISCaculator接口就是服务器端的Caculator类的接口,可以和图1对比
机器配置:U:E1230-v2,内存:ddr3-8G
1、递归调用
过程:Client向Server调用方法,Server的方法内部再调用一次Client的方法,拿到结果后计算结果返回给Client.
![](https://oscdn.geek-share.com/Uploads/Images/Content/201911/29/71bbd99a4e6eb6a9757f341b5986ee9f.jpg)
2、单向调用
过程:client调用Server的方法
![](https://oscdn.geek-share.com/Uploads/Images/Content/201911/29/81a3ae0f78e98c1e12aa904469099c23.jpg)
哈,性能非常给力吧,我也没想到性能这么给力。
用RPC开发一个分布式应用或者网络应用非常简单,下面粘点代码
Server端:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201911/29/bc6b5f2eec13d504180ab439600c12fa.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201911/29/c578d93dbd22d6628d1e27542d482921.jpg)
就这么简单,服务器的类只需要继承自ServerController,里面的方法客户端就能直接调用,图中注释的代码就是代码内部反向调用Client端的方法,方法体内部支持Session上下文,可以很方便的操作,图中的BroadCast方法就是使用Session上下文给所有在线的用户发送广播信息
client端:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201911/29/0f9d25da38d373c7e440f18be20541bf.jpg)
就这么简单,只需要提供Server端的方法的接口,就能像使用本地方法一样调用服务器的方法。
图中的ISCaculator接口就是服务器端的Caculator类的接口,可以和图1对比
相关文章推荐
- 网络编程五阶段总结
- Xcode7HTTP请求以及真机调试
- 网络编程四阶段总结
- Android中Okhttp和SPDY协议
- httpd(2.2&2.4)RPM搭建配置定义详解
- Linux 系统应用编程——网络编程(基础篇)
- 计算机网络复习
- [机器学习] Coursera ML笔记 - 神经网络(Learning)
- 从僵尸网络追踪到入侵检测 第8章 Honeyd配置文件使用
- Android网络请求心路历程
- 【转】TCP/IP报文格式
- CentOS 7安装配置Apache HTTP Server
- Xcode7 网络请求报错:The resource could not be loaded because the App Transport Security policy requir
- XMLHttpRequest对象的status属性状态吗
- 【主席树】BZOJ 1146 network网络管理
- 用caffe训练人工神经网络
- python网络编程(基于twisted的客户端编程)
- C++基于TCP和UDP的socket通信
- OkHttpUtils的Eclipse版Lib
- HTTP 长连接和短连接