网络编程
文章平均质量分 81
G1036583997
这个作者很懒,什么都没留下…
展开
-
tcp socket keepalive分析
转载自:http://blog.csdn.net/pb8/article/details/16989465有些网络应用在网线断开后重新连上的情况下 tcp socket 连接保持 ESTABLISH 状态不变,[喝小酒的网摘]http://blog.const.net.cn/a/17107.htm假如应用程式不使用 tcp 的 keepalive,在网线断开之后,以前建立的 sock转载 2016-10-13 08:40:42 · 3500 阅读 · 0 评论 -
boost 文本和二进制序列化
文本序列化需要对二进制数据进行转换,还要加入分隔符,因此不仅效率低而且耗费更多的空间。写了一个小程序比较一下二者效率相差相差多少,发现还是蛮悬殊的。例子程序中对同一个对象序列化100万次,该对象包含几种常用的数据类型,除了比较速度,还比较二者耗费的空间大小。程序代码如下:#include #include #include #include #include转载 2017-04-11 14:47:30 · 2001 阅读 · 0 评论 -
boost序列化
程序开发中,序列化是经常需要用到的。像一些相对高级语言,比如Java, C#都已经很好的支持了序列化,那么C++呢?当然一个比较好的选择就是用Boost,这个号称C++准标准库的东西。什么时候需要序列化呢?举个例子,我们定义了一个class,比如:[cpp] view plain copy class CCar { public: void Set转载 2017-04-11 14:40:55 · 826 阅读 · 0 评论 -
linux内核数据结构之kfifo
转载自:http://www.cnblogs.com/Anker/p/3481373.html1、前言 最近项目中用到一个环形缓冲区(ring buffer),代码是由linux内核的kfifo改过来的。缓冲区在文件系统中经常用到,通过缓冲区缓解cpu读写内存和读写磁盘的速度。例如一个进程A产生数据发给另外一个进程B,进程B需要对进程A传的数据进行处理并写入文件,如果B没有处转载 2017-01-23 14:18:45 · 1174 阅读 · 0 评论 -
对libevent+多线程服务器模型的C++封装类
转载自:http://www.tuicool.com/articles/QBj2ma备注:1.static 函数使用原因是因为pthread_create中需要使用的是全局函数,声明为静态函数。bufferevent中的回调函数同理。通过传递参数在其中访问非静态成员2.下列代码中在TcpEventServer::ReadEventCb中为conn中的m_ReadBuf、m_WriteB原创 2017-01-11 17:17:25 · 1709 阅读 · 1 评论 -
epoll详解
转载自:http://blog.chinaunix.net/uid-24517549-id-4051156.html什么是epollepoll是什么?按照man手册的说法:是为处理大批量句柄而作了改进的poll。当然,这不是2.6内核才有的,它是在2.5.44内核中被引进的(epoll(4) is a new API introduced in Linux kernel 2.5转载 2017-01-05 08:30:27 · 452 阅读 · 0 评论 -
epoll详细工作原理
http://blog.csdn.net/hdutigerkin/article/details/7517390 开发高性能网络程序时,windows开发者们言必称iocp,Linux开发者们则言必称epoll。大家都明白epoll是一种IO多路复用技术,可以非常高效的处理数以百万计的socket句柄,比起以前的select和poll效率高大发了。我们用起epoll来都感觉挺爽,确实快转载 2017-01-05 08:20:38 · 430 阅读 · 0 评论 -
高性能网络编程2----TCP消息的发送
转载自:http://blog.csdn.net/russell_tao/article/details/9370109在上一篇中,我们已经建立好的TCP连接,对应着操作系统分配的1个套接字。操作TCP协议发送数据时,面对的是数据流。通常调用诸如send或者write方法来发送数据到另一台主机,那么,调用这样的方法时,在操作系统内核中发生了什么事情呢?我们带着以下3个问题来细细分析:发送方法成转载 2016-11-01 16:49:34 · 303 阅读 · 0 评论 -
高性能网络编程(一)----accept建立连接
转载自:http://blog.csdn.net/russell_tao/article/details/9111769最近在部门内做了个高性能网络编程的培训,近日整理了下PPT,欲写成一系列文章从应用角度谈谈它。编写服务器时,许多程序员习惯于使用高层次的组件、中间件(例如OO(面向对象)层层封装过的开源组件),相比于服务器的运行效率而言,他们更关注程序开发的效率,追求更快的完成项目功能点转载 2016-11-01 15:59:29 · 350 阅读 · 0 评论 -
心跳包机制
转载自:http://blog.csdn.net/xuyuefei1988/article/details/8279812心跳包的发送,通常有两种技术方法1:应用层自己实现的心跳包 由应用程序自己发送心跳包来检测连接是否正常,大致的方法是:服务器在一个 Timer事件中定时 向客户端发送一个短小精悍的数据包,然后启动一个低级别的线程,在该线程中不断检测客户端的回应, 如果在一定时间转载 2016-10-17 10:47:13 · 2766 阅读 · 0 评论 -
谈谈网络编程中应用层(基于TCP/UDP)的协议设计 [帧设计]
转载自:http://blog.sina.com.cn/s/blog_48d4cf2d0101859x.html 对于初涉网络编程的开发人员来说,在通信协议的设计上一般会有所困惑。一般的网络编程书籍上也较少涉及这方面的内容。估计是觉得太简单了。这块确实是不难,但如果不了解,又很容易出篓子或者绕弯路。下面我就来谈谈基于TCP/UDP的协议设计。 1、基于TCP的协议设计 TC转载 2016-11-07 09:52:57 · 1625 阅读 · 0 评论 -
网络 心跳
转载自:http://blog.csdn.net/henry000/article/details/7250866网路断开掉线异常处理: HeartBeat 网络心跳包 一下是个人理解,网络心跳包的处理方式有两种“ 方式一: 终端主动发起, 服务器记录各个终端最后一个包的时间点,然后定时扫描全部客户端,如果扫描时间点与上次收包时间点相隔时间大于超转载 2016-10-13 10:13:40 · 1946 阅读 · 0 评论 -
boost 序列化 多个条数据,文件读取
转载自:http://www.cnblogs.com/cmranger/p/4772149.html序列化可以把对象转化成一个字节流存储或者传输,在需要时再回复成与原始状态一致的等价对象。C++标准没有定义这个功能。boost.serialization以库的形式提供了这个功能,非常强大,可以序列化C++中各种类型,而且简单易用。boost.serialization库必须编译后才能使转载 2017-04-11 15:30:59 · 2241 阅读 · 0 评论