文本协议与二进制协议
2014-03-11 01:12
99 查看
感想随笔:
1、文本协议与二进制协议
个人理解:
1)文本协议是根据文本中出现某些字符来表达信息,如出现\n、<、{、"等等,json xml等就是文本协议;
2)二进制协议是按照字节的位置和长度来表达信息,最近半年做的push系统的消息协议就是二进制协议
2、序列化与RPC
1)所谓RPC,是进程间调用方法的一种机制,它是跨语言的;那么不同语言不同进程间如何理解消息呢,客户端把消息做一个序列化,服务端反序列化,并解析出消息中的方法名和参数,执行自己的方法后,把返回值序列化传给客户端,客户端反序列化,得到结果;lajp就是基于这种机制。
2)当然,序列化和RPC没有必然联系,它本身是为了存储和传输对象信息,把一种语言中的对象序列化后可以存储起来或者传输给其他进程来解析。protobuff就是一种序列化的机制。
3、C与操作系统API
为何C可以调用操作系统API?
1)API是源码级别的接口,unix操作系统就是用C编写的,所以提供的API也是C语言实现的,我们写程序去调用unix的API,最终的代码都是在一个环境下编译连接执行的。就像java只要import一个类,就可以调用那个类提供的方法,因为最终的代码都在JVM下执行。
2)C语言中的库,就像java中的jar包,在同一个环境下运行,所以引入库,可以编译通过;连接库,可以生成可执行文件。
本文出自 “ninecloud” 博客,请务必保留此出处http://ninecloud.blog.51cto.com/1899173/1372120
1、文本协议与二进制协议
个人理解:
1)文本协议是根据文本中出现某些字符来表达信息,如出现\n、<、{、"等等,json xml等就是文本协议;
2)二进制协议是按照字节的位置和长度来表达信息,最近半年做的push系统的消息协议就是二进制协议
2、序列化与RPC
1)所谓RPC,是进程间调用方法的一种机制,它是跨语言的;那么不同语言不同进程间如何理解消息呢,客户端把消息做一个序列化,服务端反序列化,并解析出消息中的方法名和参数,执行自己的方法后,把返回值序列化传给客户端,客户端反序列化,得到结果;lajp就是基于这种机制。
2)当然,序列化和RPC没有必然联系,它本身是为了存储和传输对象信息,把一种语言中的对象序列化后可以存储起来或者传输给其他进程来解析。protobuff就是一种序列化的机制。
3、C与操作系统API
为何C可以调用操作系统API?
1)API是源码级别的接口,unix操作系统就是用C编写的,所以提供的API也是C语言实现的,我们写程序去调用unix的API,最终的代码都是在一个环境下编译连接执行的。就像java只要import一个类,就可以调用那个类提供的方法,因为最终的代码都在JVM下执行。
2)C语言中的库,就像java中的jar包,在同一个环境下运行,所以引入库,可以编译通过;连接库,可以生成可执行文件。
本文出自 “ninecloud” 博客,请务必保留此出处http://ninecloud.blog.51cto.com/1899173/1372120
相关文章推荐
- 简单的文本协议、二进制协议
- 简单的文本协议、二进制协议
- 文本协议与二进制协议
- HTTP、SIP都是基于文本的协议,他们和基于二进制的协议有什么区别?!
- 二进制协议 vs 文本协议
- 文本协议与二进制协议的选择
- 文本协议和二进制协议
- 文本协议与二进制协议
- 文本协议与二进制协议的选择
- ZeroMQ接口函数之 :zmq_z85_decode – 从一个用Z85算法生成的文本中解析出二进制密码
- ofstream/ifstream 文本/二进制 方式 读入/写出 数据方法
- 二进制打开文件和文本打开文件的区别
- 《Python CookBook2》 第一章 文本 - 过滤字符串中不属于指定集合的字符 && 检查一个字符串是文本还是二进制
- 文本视图二进制视图
- c 打开文件方式(二进制和文本)
- 一种通用的树形二进制协议描述方法与处理算法
- 文本和二进制的加密及获取二进制文件的大小
- Stream 对象表示二进制数据或文本的流。
- 5.IDA-文本搜索、二进制搜索(16进制字节序列)、替换16进制
- 使用.ashx文件处理IHttpHandler实现发送文本及二进制数据的方法