前言 netcore 发布以来,一直很关注netcore的进程.目前在公司负责的网站也历经波折的全部有.net framework 4.0 全部切换到netcore 2.2 版本中.虽然过程遇到的坑不少,但好在最后坚持下来.目前系统全部运行稳定运行在k8s.虽然目前已经用netcore 码了不少业务代码,但总觉得很多新的语言特性.新的api没有使用到,为了学习netcore,决定做造一些简单的轮子,顺便学习下网络编程. 关于Rpc RPC(Remote Procedure Call)-远程过程调…
一般的远程监控软件都是用c或者c++等语言开发的,而使用java如何来实现相同的功能呢. 首先我们先介绍一下一个简单的远程监控程序的实现原理. 功能一,远程屏幕监视 (1) 必须要有监控端与被监控端,而且程序保持启动. (2) 被监控端获取本机的屏幕截屏发图给监控端. (3) 监控端在本地窗口中显示被监控端发送过来的图像. (4) (2)(3)步骤重复执行,这时在监控端即可实时监视到被监控端的桌面操作了. 功能二,远程控制 (1) 必须要有监控端与被监控端,而且程序保持启动. (2) 在监控端监…
基于PHP实现一个简单的在线聊天功能(轮询ajax ) 一.总结 1.用的轮询ajax 二.基于PHP实现一个简单的在线聊天功能 一直很想试着做一做这个有意思的功能,感觉复杂的不是数据交互和表结构,麻烦的是前端展..于是.. 需求分析 要实现功能,首先要做前端,经过对比其他网站的在线聊天功能,发现除了基本的聊天功能以外,还要注意以下几点. 1.一次只能和一个人聊天,但是可以随意切换其他人. 2.如果用户是从"发送消息" 入口进来的,那么当前马上就切换到对应的聊天窗口,而且如果之前有过聊…
基于 Roslyn 实现一个简单的条件解析引擎 Intro 最近在做一个勋章的服务,我们想定义一些勋章的获取条件,满足条件之后就给用户颁发一个勋章,定义条件的时候会定义需要哪些参数,参数的类型,获取勋章的时候会提供锁需要的参数,有一些内置的参数,内置的参数解析器(ParamResolver). 最后基于 Roslyn 的 Script+动态编译 功能实现了一个简单条件解析引擎. Condition Eval Demo 条件解析示例: [Fact] public async Task EvalTe…
使用CEF(二)- 基于VS2019编写一个简单CEF样例 在这一节中,本人将会在Windows下使用VS2019创建一个空白的C++Windows Desktop Application项目,逐步进行修改配置和代码编写,并在这个过程中介绍vs使用过程中和C++项目的结合.源码见文章末尾Github链接. 前提 你已经阅读过<使用CEF(1)- 起步>,你可以在这些地方读到:知乎链接.cnblogs.或,你知道如何获得libcef的库以及libcef_dll_wrapper静态库. 文件准备…
上一篇关于 WSGI 的硬核长文,不知道有多少同学,能够从头看到尾的,不管你们有没有看得很过瘾,反正我是写得很爽,总有一种将一样知识吃透了的错觉. 今天我又给自己挖坑了,打算将 rpc 远程调用的知识,好好地梳理一下,花了周末整整两天的时间. 什么是RPC呢? 百度百科给出的解释是这样的:"RPC(Remote Procedure Call Protocol)--远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议".这个概念听起来还是比较抽象,…
转载自http://shiyanjun.cn/archives/349.html Dubbo基于Hessian实现了自己Hessian协议,可以直接通过配置的Dubbo内置的其他协议,在服务消费方进行远程调用,也就是说,服务调用方需要使用Java语言来基于Dubbo调用提供方服务,限制了服务调用方.同时,使用Dubbo的Hessian协议实现提供方服务,而调用方可以使用标准的Hessian接口来调用,原生的Hessian协议已经支持多语言客户端调用,支持语言如下所示: Java:http://h…
Dubbo基于Hessian实现了自己Hessian协议,可以直接通过配置的Dubbo内置的其他协议,在服务消费方进行远程调用,也就是说,服务调用方需要使用Java语言来基于Dubbo调用提供方服务,限制了服务调用方.同时,使用Dubbo的Hessian协议实现提供方服务,而调用方可以使用标准的Hessian接口来调用,原生的Hessian协议已经支持多语言客户端调用,支持语言如下所示: Java:http://hessian.caucho.com/#Java Flash/Flex:http:/…
写在前面 阅读本文首先得具备基本的Socket.反射.Java流操作的基本API使用知识:否则本文你可能看不懂... 服务端的端口监听 进行远程调用,那就必须得有客户端和服务端.服务端负责提供服务,客户端来对服务端进行方法调用.所以现在我们清楚了: 需要一个服务端.一个客户端 那么我们说干就干,我们先建立一个服务端: 通过Socket监听本地服务器的一个端口(8081) 调用socket的accept方法等待客户端的连接(accpet方法原理) /** * RPC服务端 * @author wu…
目录 目录 Nova Project Services Project 的程序入口 setuppy Nova中RPC远程过程调用 nova-compute RPC API的实现 novacomputemanager 模块 最后 Nova Project Services nova-api:捕获novaclient发送过来的HTTP请求,并且将它转换为AMQP消息,通过Queue来与别的services通信. nova-conductor:为数据库访问提供了一层安全保障. NOTE:除了nova-…
#include <string> #include <iostream> #include <curl/curl.h> /* 标题:JSonclient Author: Kagula LastUpdateDate:2014-05-17 描写叙述:測试JSON RPC远程调用 測试环境:Windows 8.1.Visual Studio 2013 SP1 curl-7.36.0 CPPCMS 1.0.4(JSON服务端) Java Servlet (JSON服务端) *…
开局篇我们说了,RPC框架的四个核心内容 RPC数据的传输. RPC消息 协议 RPC服务注冊 RPC消息处理    接下来处理传输数据.实际应用场景一般都是基于socket.socket代码比較多,使用起来也比較麻烦. 并且详细的传输通道使用socket或者其它的方式,如更上层的http,或者android里的binder,都是可替换的.仅仅是详细的一种实现而已.所以,这里我就偷个懒,仅仅是引入一个非常easy的Connection类.用来描写叙述一下怎样将传输数据 这一层给独立出来. 首先简…
开局篇我们说了,RPC框架的四个核心内容 RPC数据的传输. RPC消息 协议 RPC服务注冊 RPC消息处理 以下,我们先看一个普通的过程调用 class Client(object): def __init__(self): self.remote = None ## # 内部是托付给远程remote对象来获取结果. def sayHello(self): if self.remote: return self.remote.sayHello() else : return None cla…
开场白,这是一个关于RPC的相关概念的普及篇系列,主要是通过一步步的调整,提炼出一个相对完整的RPC框架. RPC(Remote Procedure Call Protocol)--远程过程调用协议,基于C/S模型.网络上有一篇文章写得不错.能够去了解一下相关概念深入浅出RPC 这里,直接使用一下上面作者的一个示意图 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbWluZGZsb2F0aW5n/font/5a6L5L2T/fontsize/400/f…
基于DriectUI有很多库,比如 Duilib (免费) soui (免费) DuiVision (免费) 炫彩 (界面库免费,UI设计器付费,不提供源码) skinui (免费使用,但不开放源码,仅支持 VS 2013) Duilib 很久不维护了,而很多不同的分支,似乎都不太维护.微信 Windows 的版本是基于 Duilib 进行开发的,说明应该还是很广泛的. 我当时最倾向于 DuiVision,界面很漂亮,代码也是上述库里面最简洁的.唯一的问题主是窗口最小化之后,再打开,会黑一下.(…
实现控制台输入输出 实现文件读写操作 全原生实现一个简单的脚手架工具 实现vue-cli2源码 一.实现控制台输入输出 关于控制台的输入输出依然是基于node进程管理对象process,在process上有三个基于流的对象分别是:标准输入流(stdin).标准输出流(stdout).标准错误(stderr). 关于流这里不做太多解析,后面会专门针对node核心模块做详细的分析,这里简单的说说它们的应用.输入流可以理解为将控制台的输入内容读到一个内存中:输出流就是可以理解为将内存中的内容输出:错误…
上一篇讲解了R2的网口配置,这一篇我们以BananaPi R2为例子来实现一个简单的路由器:那么一个简单的路由器应该具备什么样的功能呢?最简单的说就是wan+lan+ap这三个功能. 首先wan+lan的功能,R2已经默认有了,接下来我们用网桥(bridge)的方式搭建一个无线热点(Ap). 打开R2上mt6625(R2上的无线芯片)的ap模式 jack@jack: wmt_loader & jack@jack: stp_uart_launcher -p /etc/firmware & j…
写一个简单的计算器并不是什么很难的事,主要目的是要通过这个程序来学习和分析其中的核心算法.这个简易计算器的核心部分就是对输入的表达式的正确性判断与求值,其中包括对表达式的解析.中缀表达式转后缀表达式.后缀表达式求值等等几个方面. 一.封装核心代码 <算术表达式的合法性判断与求值(上)>和<算术表达式的合法性判断与求值(下)>这两篇文章已经对核心算法部分进行了讲解,并附有源码.在此基础上制作一个简单计算器,我们要做的仅仅是封装核心代码并加入MFC工程中. 下面是我封装的一个 Expr…
RPC即远程过程调用,适用于集群管理,集群节点就是RPCServer,而我们发起远程调用的web服务器就是RPCClient.所以是少数rpcClient(可能一个)对多个RPCServer(集群节点). 今天讲述的RPC开发希望实现这样一个效果,在RPCClient上(也就是web服务器)执行一条shell命令,要求指定的远程主机执行指定的命令.命令的格式如下 rpc_client rpc_server_address command 比如 ./ssan_client 192.168.1.1…
webservice是对socket的一个封装,让远程调用调用变得更加简单,那么使用socket究竟有多么麻烦呢?来看看. 做一个简单的天气查询: 服务端: public class SocketServer { public static void main(String[] args) { DataInputStream dataInputStream = null; DataOutputStream dataOutputStream = null; try { // 启动socket服务端…
注:下面使用dubbo依赖的是zookeeper注册中心,这里没有详细的介绍.在配置之前,请自行准备好zookeeper环境. 后续如果写zookeeper的配置会补放链接 添加Gradle依赖 compile group: 'com.alibaba', name: 'dubbo', version: '2.5.10'//dubbo compile group: 'org.apache.zookeeper', name: 'zookeeper', version: '3.3.3'//zookee…
我们先创建一个简单空web应用程序 然后添加新建项目 //我们创建一个peson对象,产生数据标识返回 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Services; namespace 创建简单的WebService服务 { /// <summary> /// WebService1 的摘要说明 /// </summary>…
之前我们制定了一个非常easy的RPC消息 的格式,可是还遗留了两个问题,上一篇解决掉了一个.还留下一个 我们并没有实现对应的encode和decode方法,没有基于能够跨设备的字符串传输,而是直接的内存变量传递. 如今的RPC request不支持带參数的请求命令. 如add(a, b), 怎样在RPC消息中描写叙述參数a,b . 以下我们处理掉这个编解码问题. 实际的RPC应用基本都是跨机器连接.所以无法直接传递内存变量,也就是说还须要将消息编码成 诸如字符串一类的能够跨设备传输的内容. 详…
今天简单说一下基本Http协议来实现RPC框架~ 基于Http协议实现RPC框架: 优点: 1.简单.实用.开发方便 缺点: 1.性能不是很稳定,在海量数据时,完全顶不住,容易宕机 2.因为不是走的注册中心,不便于维护.监控以及统计分析 但是对于大多数公司而言,不会又像淘宝.京东那样大的数据量,所以基于Http协议的RPC,实现多个系统间的解耦,还是很实用的~ 下面,我们进入正题,通过Java实现简单的RPC调用 一.maven 引入第三方jar包(不是maven项目,可以自己去网上下载一个对应…
这几天一直在捣鼓接口测试,以下总结一下: 1.什么是接口测试:接口是指系统模块与模块之间或者系统与系统之间进行交互,一般我们用的多的是HTTP协议的接口.WebService协议的接口.还有RPC(Remote Procedure Call Protocol)的接口.不管是哪种接口,其本质就是发送一个Request,然后服务器响应后返回一个response,然后我们对response进行分析,这就是接口测试. 2.消息接口测试的两种: a) Webservice:使用soap协议得到想要的东西(…
http://blog.csdn.net/zhu_tianwei/article/details/40920985 spring-rabbitmq中实现远程接口调用,主要在com.rabbitmq.spring.remoting下几个类:发布服务端(Server):RabbitInvokerServiceExporter.java接口调用客户端(Client):RabbitInvokerProxyFactoryBean.java,RabbitInvokerClientInterceptor.ja…
写这个五子棋游戏,其实主要目的是想尝试一下微软新作Blazor.Blazor对于那些搞.NET的程序员,又想做一些前端工作,真的挺友好,不用一句JS就可搞定前端交互,美哉.现在已经有很流行的前端框架,如vue.react.angular等,微软出这个blazor框架,目前观测下来,在国外还满火的,国内就没什么声响了,一方面.net在国内影响本来也不大,另一方面搞.net的也怕被微软又给坑了,所以都是一种观望状态. 扯远了,回到正题,五子棋游戏,本质上还是个二维数组,值0表示空位,1表示黑子,2表…
现阶段需要做一个小项目,体量很小,业务功能比较简单,就想到用最熟悉的.net来做,更何况现在.net core已经跨平台,也可以在linux服务器上部署.所以决定用.net core 3.1+mysql.为了起步更容易,用最新的abpV3(2020.6.4)来写,这样管理端也有了,api也有了,上手速度极快.不用最新的volo.abp的原因是,感觉,恩,纯粹是感觉,才更新到2.9版本,怕项目过程中遇到坑比较耗时间解决,就还是用原来的abp吧. 之前用abp写微服务框架的时候,.net core还…
上一篇正说着呢,代码生成器就来了. 1.适用于ABP官网的Startup Template V3.x的包含了登录.用户等页面的MPA应用模板2.当前view仅支持文本框生成,远期规划根据字段类型生成不同的控件3.只需要写好Entity,剩下的交给代码生成器,一键生成所有重复代码.4.基于winform,脱离VS存在,只要有.net framework,什么环境都能运行起来. 下载链接放在最后 使用方法及其简单: 1.按照规则,编写Entity实体类. 规则如下:1)命名空间统一用复数,类名用单数…
起因 需求是这样的,有一种协议需要生成,协议的模板是可配置的,在生成过程中,模板中的内容可以根据约定的标记进行替换(就像mvc的razor模板一样).生成后的内容还需要导出成word或pdf. 常见的使用场景比如租赁协议生成,邮件内容模板生成等等,不要傻傻的hard-code像‘#name#’这样的标记了. 优势就是可自定义模板,灵活匹配可获取到对象的任何字段,解除开发侧的包袱 开源框架 wangEditor 简单的富文本编辑器,基本功能够用,使用方便RazorLight.NetCore3 基于…