tcp/ip
文章平均质量分 79
hustyangju
这个作者很懒,什么都没留下…
展开
-
google protocol buffer的原理和使用(二)
本文主要会介绍怎么使用Google Protocol的Lib来序列化我们的数据,方法很多种,本文只介绍其中的三种,其他的方法读者可以通过自行研究摸索。但总的来说,序列化数据总的来说分为以下俩步: 1)使用数据源填充数据结构,无论数据源来自文件还是内存还是标准输入 2)利用Lib提供的序列化接口将数据结构序列化,然后存储在内存或者磁盘上 一、填充数据结原创 2015-07-10 10:07:57 · 1330 阅读 · 0 评论 -
google protocol buffer的原理和使用(四)
有个电子商务的系统(假设用C++实现),其中的模块A需要发送大量的订单信息给模块B,通讯的方式使用socket。 假设订单包括如下属性: -------------------------------- 时间:time(用整数表示) 客户id:userid(用整数表示) 交易金额:price(用浮点数表示) 交易的描述:desc(用字符串表示) -----------原创 2015-07-10 10:21:55 · 938 阅读 · 0 评论 -
google protocol buffer的原理和使用(一)
一、简单的介绍 Protocol buffers是一个用来序列化结构化数据的技术,支持多种语言诸如C++、Java以及Python语言,可以使用该技术来持久化数据或者序列化成网络传输的数据。相比较一些其他的XML技术而言,该技术的一个明显特点就是更加节省空间(以二进制流存储)、速度更快以及更加灵活。 通常,编写一个protocol buffers应用需要经历如下三步原创 2015-07-10 10:02:38 · 1113 阅读 · 0 评论 -
google protocol buffer的原理和使用(三)
介绍下怎么反序列化GoogleBuffer数据,并在最后提供本系列文章中所用到的代码整理供下载。 上一篇文章介绍了怎样将数据序列化到了addressbook.data中,那么对于接受方而言该怎么解析出原本的数据呢。同样,protoc编译器生成的代码文件中提供了反序列化的接口,基本上和序列化的函数对应的,如下图所示: 上文中采用了SerializeToOs原创 2015-07-10 10:10:24 · 1067 阅读 · 0 评论 -
EPOLL 边缘触发学习
在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。 相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且,在linux/posix_types.h头文件有这样的声明: #define __转载 2015-07-08 09:28:57 · 639 阅读 · 0 评论 -
select、poll、epoll之间的区别总结[整理]
select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,而异步I/O则无需自己负责进行读写,异步I/O的实现会负责把数据从内核拷贝到用转载 2015-07-08 09:37:50 · 459 阅读 · 0 评论 -
netstate 与 tcpdump
netstat 常见参数 -a (all)显示所有选项,默认不显示LISTEN相关 -t (tcp)仅显示tcp相关选项 -u (udp)仅显示udp相关选项 -n 拒绝显示别名,能显示数字的全部转化成数字。 -l 仅列出有在 Listen (监听) 的服務状态 -p 显示建立相关链接的程序名 -r 显示路由信息,路由表 -e 显示扩展信息,例如uid等 -s 按各转载 2015-09-13 22:01:46 · 2116 阅读 · 0 评论