- windows 内核层简单 map 实现与测试
爱学习的大牛123
windows驱动内核开发mapwindows内核
KernelDataStructs.h#pragmaonce#pragmaonce#include//内存标签定义#defineKERNEL_MAP_TAG'KMap'#defineKERNEL_VECTOR_TAG'KVec'//安全内存分配宏#defineSAFE_ALLOC(ptr,size,tag)\(ptr)=ExAllocatePoolWithTag(NonPagedPoolNx,(s
- 前部分知识复习01
太妃糖耶
unity
一、关于变体1.#pragmamulti_compileA2.#pragmashader_featureAUnity提供了两个关键字来定义宏multi_compile和shader_feature,Unity会根据宏定义来生成不同种类的shader,这些不同种类的shader就是所谓的变体。multi_compile的特点如下:1、会组合爆炸#pragmamulti_compileAB#pragm
- 数据库语句
lrydnh
数据库android
环境变量path下的目录是系统目录。#include#include#pragmacomment(lib,"libmysql.lib")//链接libmysql.dll动态库的中间桥//MYSQL*conn;//数据库句柄。后面还有网络句柄(用来网络收发数据)boolconnect(){conn=mysql_init(NULL);if(conn==NULL){printf("Error%u:%s\
- sqlite3学习之PRAGMA 命令的使用
luyaran
原创sqlite3学习记录sqlite3PRAGMA命令
SQLite的PRAGMA命令是一个特殊的命令,可以用在SQLite环境内控制各种环境变量和状态标志。一个PRAGMA值可以被读取,也可以根据需求进行设置,如果我们要查询当前的PRAGMA值,只需要提供该pragma的名字,如下:PRAGMApragma_name;为PRAGMA设置一个新的值,语法如下:PRAGMApragma_name=value;设置模式,可以是名称或等值的整数,但返回的值将
- UE4 C++与蓝图的继承问题
时空观察者9号
ue4c++开发语言
C++写了一个类MyChar,并派生了一个蓝图子类BP_MyCharacter。//FilloutyourcopyrightnoticeintheDescriptionpageofProjectSettings.#pragmaonce#include"CoreMinimal.h"#include"GameFramework/Character.h"#include"MyCharacter.gene
- 程序员都踩过的头文件多次包含的坑!#ifndef 和 #pragma once 你该怎么选?
c++后端
大家好,我是小康。前言:写C/C++代码时,有时候你会遇到编译器提示“重复定义”或者“符号冲突”的问题,尤其是在引入类的头文件时,编译器可能会告诉你:“喂!你这里有两个相同的类定义,搞错了吧!”这个问题通常发生在某个.cpp文件中多次引入了同一个头文件,导致该头文件被多次包含。你可能会想,为什么这会有问题呢?头文件不就是用来声明类和函数的吗,包含一次不就行了吗?为什么会导致编译出错呢?好,今天我们
- 基础网络编程——TCP编程
chenlian_af
网络编程开发语言c++网络服务器
网络编程实现了一个简单的基于TCP的Windows服务器,它可以简单的执行一次发送数据和一次接收数据1、TCP编程1.1、前期准备#include//包含头文件#pragmacomment(lib,"ws2_32.lib")//添加静态链接库intmain(){//网络环境初始化WSADATAdata;WORDvirsion=MAKEWORD(2,2);interr=WSAStartup(virs
- RV1126的RGB数据传输到共享内存
学习嵌入式的小羊~
算法数据结构
上图是RV1126后台程序生成RGB数据通过共享内存进行传输的图解,台程RV1126后序(进程一)生成的RGB视频流放入到共享内存,而CGI程序(进程二)通过获取共享内存的RGB数据刷新到网页上面。代码封装#pragmaonce#include#include#include//共享内存五步走//1.创建共享内存//2.链接到内核里面去//3.通信//4.删除链接//5.删除共享内存#define
- 读取图片并显示每个像素处的RGB值
vincent-xia
C++GDI像素RGB
不记得在网上什么地方见到的demo了,感觉会有时候会用到。就是读取一幅图片每个像素处的RGB三个通道的值。代码如下,代码很简单,就不解释了,主要是那个gdi中的函数用的少:#include#include#include#include#include#pragmacomment(lib,"gdiplus.lib")usingnamespacestd;usingnamespaceGdiplus;i
- 香橙派/树莓派 利用Wiring库 使用GPIO模拟PWM
土拨鼠不是老鼠
C++单片机嵌入式硬件PWMGPIO香橙派3lts
香橙派或者树莓派等开发板,本身带有硬件PWM,比如香橙派3lts版,但是这个引脚不符合我的项目需求,我需要外接一个电机,在检测到人脸的时候转动,但是这个硬件引脚,只要上电就开始输出pwm信号,导致电机一直再转,因此采用软件利用GPIO模拟的方式,更符合需求。#pragmaonce#include#include#include#include#include#include#includeusin
- 代码贴——堆(二叉树)数据结构
头发尚存的猿小二
代码帖数据结构数据结构android
头文件Heap.h#pragmaonce#includetypedefintHPDataType;typedefstructHeap{HPDataType*a;intsize;intcapacity;}HP;voidHPInit(HP*php);voidHPDestory(HP*php);//出入后保持数据是堆voidHPPush(HP*php,HPDataTypex);HPDataTypeHPT
- Ardusub源码剖析——GCS_Mavlink.h
我想发发发
#Ardusubc++无人机开源嵌入式硬件
代码#pragmaonce#includeclassGCS_MAVLINK_Sub:publicGCS_MAVLINK{public:usingGCS_MAVLINK::GCS_MAVLINK;protected:uint32_ttelem_delay()constoverride{return0;};MAV_RESULThandle_flight_termination(constmavlink
- 计算机网络socket实验报告2,计算机网络socket编程实验报告.docx
超级爱喝水
Socket编程实验报告一、程序代码(1)服务器端#include#include#pragmacomment(lib,"ws2_32.lib")voidmain(){WORDwVersionRequested;WSADATAwsaData;interr;wVersionRequested=MAKEWORD(1,1);err=WSAStartup(wVersionRequested,&wsaDat
- (一)c++调用自己编写的静态库
HawardScut
c-c++
c++调用自己编写的静态库1.静态库的介绍:一个静态库可以简单看成是一组目标文件(.o/.obj文件)的集合,静态库与汇编生成的目标文件一起链接为可执行文件。2.静态库的优缺点:(1)静态库对函数库的链接在编译时期完成,程序在运行时与函数库无关,移植方便。(2)所有相关的目标文件与牵涉到的函数库被链接合成一个可执行文件,浪费空间和资源。3.Demo实例:StaticMath.h#pragmaonc
- [URP]阴影与环境光(常见问题)
不吃斋的和尚
前端unity计算机视觉
之前学习CRomputer罗老师的这篇文章,文章写得很详细,但在实测中发现改代码并没有接受阴影,只有投影,排查发现在#pragmamulti_compile_MAIN_LIGHT_SHADOWS#pragmamulti_compile_MAIN_LIGHT_SHADOWS_CASCADE#pragmamulti_compile_SHADOWS_SOFT这段代码中少了一个“_”,修改后应该是这样//
- Windows和Linux下,通过C++实现获取蓝牙版本号
xingyun86
C++windowslinuxc++
在C++中获取蓝牙版本号,不同的操作系统有不同的实现方式,下面分别介绍在Windows和Linux系统下的实现方法。Windows系统在Windows系统中,可以使用WindowsAPI来与蓝牙设备交互,获取蓝牙版本号。以下是一个示例代码:收起cpp#include#include#include#include#include#pragmacomment(lib,"Bthprops.lib")/
- 动态顺序表
有梦想的电信狗
《数据结构与算法》数据结构c语言
顺序表(动态)顺序表分为静态和动态,静态的顺序表和动态顺序表相关接口的实现差别不大,因此不在赘述。头文件定义类型定义#pragmaonce#include#include#include//#defineN10#defineINIT_CAPACITY4//给顺序表一个初始大小typedefintSLDataType;//定义顺序表数据类型静态顺序表开少了不够用开多了浪费//typedefstruc
- ue4 碰撞销毁actor Destroy
踏着阳光
ue4
1新建c++类MyActor2MyActor.h//FilloutyourcopyrightnoticeintheDescriptionpageofProjectSettings.#pragmaonce#include"CoreMinimal.h"#include"GameFramework/Actor.h"#include"MyActor.generated.h"UCLASS()classROT
- 使用GDI+、文件和目录和打印API,批量将图片按文件名分组打包成PDF
黄铎彦
大三下学期pdfwindowsc++
代码写了两个小时,速度太慢(包括学习文档的时间)#include#include#include#includeusingnamespaceGdiplus;#pragmacomment(lib,"Gdiplus.lib")enum{IDLEN=30,FNAME=IDLEN+5,//.pdf};intmain(void){GdiplusStartupInputgsi;ULONG_PTRtok;Gdi
- 在VS-qt的程序中,后期增加PCH预编译功能,提高编译速度
blueman8888
QTqt开发语言
由于前期创建qt程序的时候未勾选pch功能,导致没有启动预编译的功能.这种情况下需要增加pch功能应该怎么做?在项目中增加2个文件stdafx.h和stdafx.cpp文件stdafx.h增加qt常用头文件#pragmaonce//windows#include//qt常用#include#include#include#include#include#include#include#includ
- Linux线程封装(c++)
laimaxgg
linuxc++java
Linux线程封装(c++)1.前言c++对Linux的pthread.h库进行了封装,使我们能以类和对象的形式创建和管理线程。本篇将模拟c++封装pthread.h库的线程相关函数,使我们也能在外部以类和对象的形式创建和管理线程。2.代码实现2.1成员变量、构造函数#pragmaonce#include#include#includeusingfunc_t=std::function;class
- C++ 实现Arp断网
万能的小裴同学
c++网络
此程序由AI生成,测试过了,可以使用但是,貌似全部都会断网#include#include#include#include#include#include#include#include#pragmawarning(disable:4996)#pragmacomment(lib,"wpcap.lib")#pragmacomment(lib,"Ws2_32.lib")#pragmacomment(l
- C++ -- vector的模拟实现
kk\n
c++开发语言
vector.h的内容:#pragmaonce#include#include#includenamespacekk{templateclassvector{public:typedefT*iterator;//指针版迭代器typedefconstT*const_iterator;//注:这里的bgein()、end()写的都是用的传值返回,所以不能对返回值进行++,--这种操作(就是++v.be
- 栈和队列的实现(C语言)
思麟呀
数据结构c语言学习
1:栈1:概念和结构栈:一种特殊的线性表,其只运行在固定的一段进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守先进后出的原则。压栈:在栈里面插入元素出栈:在栈里面删除元素2:栈的实现1:stack.h#pragmaonce#include#include#include#include//支持动态增长的栈typedefintSTDataType;ty
- sqlite 查看表结构
不穿铠甲的穿山甲
sqlite数据库
在SQLite中,查看表结构通常有以下几种方法:使用.schema命令在SQLite的命令行界面中,你可以使用.schema命令加上表名来查看该表的结构。例如,如果你想查看名为your_table_name的表结构,你可以这样做:.schemayour_table_name这会显示创建该表的完整SQL语句,包括所有列的定义和任何索引、外键约束等。使用PRAGMAtable_info命令如果你想获取
- solidity 数学和密码学函数
龑行天下
密码学solidity
数学和密码学函数为开发者提供了一系列强大的工具,用于执行各种数学运算和加密操作addmod(uintx,uinty,uintk)returns(uint)计算(x+y)%k,加法会在任意精度下执行,并且加法的结果即使超过2**256也不会被截取。从0.5.0版本的编译器开始会加入对k!=0的校验(assert)。//SPDX-License-Identifier:MITpragmasolidity
- 【C语言】结构体对齐规则
海绵丿星星
C语言c语言结构体对齐
文章目录一、内存对齐规则二、结构体的整体对齐:一、内存对齐规则1.第一个数据成员:结构体的第一个数据成员总是放置在其起始地址处,即偏移量为0的位置。2.其他数据成员的对齐:每个后续成员的存储地址必须是其有效对齐值的整数倍。自身对齐值是指该成员类型的大小(例如,int类型通常是4字节)。指定对齐值可以通过#pragmapack(N)宏来设定,其中N必须是2的幂次方(如1,2,4,8,16等)。如果没
- QImage与AVFrame互转
去往火星
FFmpeg音视频数据库算法
未验证,仅供参考,此方法感觉不是很好先是AVFrame转QImage#pragmaexecution_character_set("utf-8")staticintdecode_write_frame(AVCodecContext*avctx,AVFrame*frame,int*frame_count,AVPacket*pkt,intlast){intlen,got_frame;charbuf[1
- c++ blockqueue 记录
qq_43361844
c++并发c++开发语言
#pragmaonce#include#include#include#includenamespacemyBlockQueue{templateclassBlockDeque{public:explicitBlockDeque(size_tMaxCapacity=1000):capacity_(MaxCapacity){assert(MaxCapacity>0);isClose=false;}~
- C++ 通过IP地址获取MAC地址
万能的小裴同学
c++tcp/ip
#include#include#include#include#pragmawarning(disable:4996)#pragmacomment(lib,"ws2_32.lib")#pragmacomment(lib,"iphlpapi.lib")std::stringgetMacAddress(conststd::string&ipAddress){//初始化WinsockWSADATAws
- jsonp 常用util方法
hw1287789687
jsonpjsonp常用方法jsonp callback
jsonp 常用java方法
(1)以jsonp的形式返回:函数名(json字符串)
/***
* 用于jsonp调用
* @param map : 用于构造json数据
* @param callback : 回调的javascript方法名
* @param filters : <code>SimpleBeanPropertyFilter theFilt
- 多线程场景
alafqq
多线程
0
能不能简单描述一下你在java web开发中需要用到多线程编程的场景?0
对多线程有些了解,但是不太清楚具体的应用场景,能简单说一下你遇到的多线程编程的场景吗?
Java多线程
2012年11月23日 15:41 Young9007 Young9007
4
0 0 4
Comment添加评论关注(2)
3个答案 按时间排序 按投票排序
0
0
最典型的如:
1、
- Maven学习——修改Maven的本地仓库路径
Kai_Ge
maven
安装Maven后我们会在用户目录下发现.m2 文件夹。默认情况下,该文件夹下放置了Maven本地仓库.m2/repository。所有的Maven构件(artifact)都被存储到该仓库中,以方便重用。但是windows用户的操作系统都安装在C盘,把Maven仓库放到C盘是很危险的,为此我们需要修改Maven的本地仓库路径。
- placeholder的浏览器兼容
120153216
placeholder
【前言】
自从html5引入placeholder后,问题就来了,
不支持html5的浏览器也先有这样的效果,
各种兼容,之前考虑,今天测试人员逮住不放,
想了个解决办法,看样子还行,记录一下。
【原理】
不使用placeholder,而是模拟placeholder的效果,
大概就是用focus和focusout效果。
【代码】
<scrip
- debian_用iso文件创建本地apt源
2002wmj
Debian
1.将N个debian-506-amd64-DVD-N.iso存放于本地或其他媒介内,本例是放在本机/iso/目录下
2.创建N个挂载点目录
如下:
debian:~#mkdir –r /media/dvd1
debian:~#mkdir –r /media/dvd2
debian:~#mkdir –r /media/dvd3
….
debian:~#mkdir –r /media
- SQLSERVER耗时最长的SQL
357029540
SQL Server
对于DBA来说,经常要知道存储过程的某些信息:
1. 执行了多少次
2. 执行的执行计划如何
3. 执行的平均读写如何
4. 执行平均需要多少时间
列名 &
- com/genuitec/eclipse/j2eedt/core/J2EEProjectUtil
7454103
eclipse
今天eclipse突然报了com/genuitec/eclipse/j2eedt/core/J2EEProjectUtil 错误,并且工程文件打不开了,在网上找了一下资料,然后按照方法操作了一遍,好了,解决方法如下:
错误提示信息:
An error has occurred.See error log for more details.
Reason:
com/genuitec/
- 用正则删除文本中的html标签
adminjun
javahtml正则表达式去掉html标签
使用文本编辑器录入文章存入数据中的文本是HTML标签格式,由于业务需要对HTML标签进行去除只保留纯净的文本内容,于是乎Java实现自动过滤。
如下:
public static String Html2Text(String inputString) {
String htmlStr = inputString; // 含html标签的字符串
String textSt
- 嵌入式系统设计中常用总线和接口
aijuans
linux 基础
嵌入式系统设计中常用总线和接口
任何一个微处理器都要与一定数量的部件和外围设备连接,但如果将各部件和每一种外围设备都分别用一组线路与CPU直接连接,那么连线
- Java函数调用方式——按值传递
ayaoxinchao
java按值传递对象基础数据类型
Java使用按值传递的函数调用方式,这往往使我感到迷惑。因为在基础数据类型和对象的传递上,我就会纠结于到底是按值传递,还是按引用传递。其实经过学习,Java在任何地方,都一直发挥着按值传递的本色。
首先,让我们看一看基础数据类型是如何按值传递的。
public static void main(String[] args) {
int a = 2;
- ios音量线性下降
bewithme
ios音量
直接上代码吧
//second 几秒内下降为0
- (void)reduceVolume:(int)second {
KGVoicePlayer *player = [KGVoicePlayer defaultPlayer];
if (!_flag) {
_tempVolume = player.volume;
- 与其怨它不如爱它
bijian1013
选择理想职业规划
抱怨工作是年轻人的常态,但爱工作才是积极的心态,与其怨它不如爱它。
一般来说,在公司干了一两年后,不少年轻人容易产生怨言,除了具体的埋怨公司“扭门”,埋怨上司无能以外,也有许多人是因为根本不爱自已的那份工作,工作完全成了谋生的手段,跟自已的性格、专业、爱好都相差甚远。
- 一边时间不够用一边浪费时间
bingyingao
工作时间浪费
一方面感觉时间严重不够用,另一方面又在不停的浪费时间。
每一个周末,晚上熬夜看电影到凌晨一点,早上起不来一直睡到10点钟,10点钟起床,吃饭后玩手机到下午一点。
精神还是很差,下午像一直野鬼在城市里晃荡。
为何不尝试晚上10点钟就睡,早上7点就起,时间完全是一样的,把看电影的时间换到早上,精神好,气色好,一天好状态。
控制让自己周末早睡早起,你就成功了一半。
有多少个工作
- 【Scala八】Scala核心二:隐式转换
bit1129
scala
Implicits work like this: if you call a method on a Scala object, and the Scala compiler does not see a definition for that method in the class definition for that object, the compiler will try to con
- sudoku slover in Haskell (2)
bookjovi
haskellsudoku
继续精简haskell版的sudoku程序,稍微改了一下,这次用了8行,同时性能也提高了很多,对每个空格的所有解不是通过尝试算出来的,而是直接得出。
board = [0,3,4,1,7,0,5,0,0,
0,6,0,0,0,8,3,0,1,
7,0,0,3,0,0,0,0,6,
5,0,0,6,4,0,8,0,7,
- Java-Collections Framework学习与总结-HashSet和LinkedHashSet
BrokenDreams
linkedhashset
本篇总结一下两个常用的集合类HashSet和LinkedHashSet。
它们都实现了相同接口java.util.Set。Set表示一种元素无序且不可重复的集合;之前总结过的java.util.List表示一种元素可重复且有序
- 读《研磨设计模式》-代码笔记-备忘录模式-Memento
bylijinnan
java设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
import java.util.ArrayList;
import java.util.List;
/*
* 备忘录模式的功能是,在不破坏封装性的前提下,捕获一个对象的内部状态,并在对象之外保存这个状态,为以后的状态恢复作“备忘”
- 《RAW格式照片处理专业技法》笔记
cherishLC
PS
注意,这不是教程!仅记录楼主之前不太了解的
一、色彩(空间)管理
作者建议采用ProRGB(色域最广),但camera raw中设为ProRGB,而PS中则在ProRGB的基础上,将gamma值设为了1.8(更符合人眼)
注意:bridge、camera raw怎么设置显示、输出的颜色都是正确的(会读取文件内的颜色配置文件),但用PS输出jpg文件时,必须先用Edit->conv
- 使用 Git 下载 Spring 源码 编译 for Eclipse
crabdave
eclipse
使用 Git 下载 Spring 源码 编译 for Eclipse
1、安装gradle,下载 http://www.gradle.org/downloads
配置环境变量GRADLE_HOME,配置PATH %GRADLE_HOME%/bin,cmd,gradle -v
2、spring4 用jdk8 下载 https://jdk8.java.
- mysql连接拒绝问题
daizj
mysql登录权限
mysql中在其它机器连接mysql服务器时报错问题汇总
一、[running]
[email protected]:~$mysql -uroot -h 192.168.9.108 -p //带-p参数,在下一步进行密码输入
Enter password: //无字符串输入
ERROR 1045 (28000): Access
- Google Chrome 为何打压 H.264
dsjt
applehtml5chromeGoogle
Google 今天在 Chromium 官方博客宣布由于 H.264 编解码器并非开放标准,Chrome 将在几个月后正式停止对 H.264 视频解码的支持,全面采用开放的 WebM 和 Theora 格式。
Google 在博客上表示,自从 WebM 视频编解码器推出以后,在性能、厂商支持以及独立性方面已经取得了很大的进步,为了与 Chromium 现有支持的編解码器保持一致,Chrome
- yii 获取控制器名 和方法名
dcj3sjt126com
yiiframework
1. 获取控制器名
在控制器中获取控制器名: $name = $this->getId();
在视图中获取控制器名: $name = Yii::app()->controller->id;
2. 获取动作名
在控制器beforeAction()回调函数中获取动作名: $name =
- Android知识总结(二)
come_for_dream
android
明天要考试了,速速总结如下
1、Activity的启动模式
standard:每次调用Activity的时候都创建一个(可以有多个相同的实例,也允许多个相同Activity叠加。)
singleTop:可以有多个实例,但是不允许多个相同Activity叠加。即,如果Ac
- 高洛峰收徒第二期:寻找未来的“技术大牛” ——折腾一年,奖励20万元
gcq511120594
工作项目管理
高洛峰,兄弟连IT教育合伙人、猿代码创始人、PHP培训第一人、《细说PHP》作者、软件开发工程师、《IT峰播》主创人、PHP讲师的鼻祖!
首期现在的进程刚刚过半,徒弟们真的很棒,人品都没的说,团结互助,学习刻苦,工作认真积极,灵活上进。我几乎会把他们全部留下来,现在已有一多半安排了实际的工作,并取得了很好的成绩。等他们出徒之日,凭他们的能力一定能够拿到高薪,而且我还承诺过一个徒弟,当他拿到大学毕
- linux expect
heipark
expect
1. 创建、编辑文件go.sh
#!/usr/bin/expect
spawn sudo su admin
expect "*password*" { send "13456\r\n" }
interact
2. 设置权限
chmod u+x go.sh 3.
- Spring4.1新特性——静态资源处理增强
jinnianshilongnian
spring 4.1
目录
Spring4.1新特性——综述
Spring4.1新特性——Spring核心部分及其他
Spring4.1新特性——Spring缓存框架增强
Spring4.1新特性——异步调用和事件机制的异常处理
Spring4.1新特性——数据库集成测试脚本初始化
Spring4.1新特性——Spring MVC增强
Spring4.1新特性——页面自动化测试框架Spring MVC T
- idea ubuntuxia 乱码
liyonghui160com
1.首先需要在windows字体目录下或者其它地方找到simsun.ttf 这个 字体文件。
2.在ubuntu 下可以执行下面操作安装该字体:
sudo mkdir /usr/share/fonts/truetype/simsun
sudo cp simsun.ttf /usr/share/fonts/truetype/simsun
fc-cache -f -v
- 改良程序的11技巧
pda158
技巧
有很多理由都能说明为什么我们应该写出清晰、可读性好的程序。最重要的一点,程序你只写一次,但以后会无数次的阅读。当你第二天回头来看你的代码 时,你就要开始阅读它了。当你把代码拿给其他人看时,他必须阅读你的代码。因此,在编写时多花一点时间,你会在阅读它时节省大量的时间。
让我们看一些基本的编程技巧:
尽量保持方法简短
永远永远不要把同一个变量用于多个不同的
- 300个涵盖IT各方面的免费资源(下)——工作与学习篇
shoothao
创业免费资源学习课程远程工作
工作与生产效率:
A. 背景声音
Noisli:背景噪音与颜色生成器。
Noizio:环境声均衡器。
Defonic:世界上任何的声响都可混合成美丽的旋律。
Designers.mx:设计者为设计者所准备的播放列表。
Coffitivity:这里的声音就像咖啡馆里放的一样。
B. 避免注意力分散
Self Co
- 深入浅出RPC
uule
rpc
深入浅出RPC-浅出篇
深入浅出RPC-深入篇
RPC
Remote Procedure Call Protocol
远程过程调用协议
它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发