转:TCP/IP协议选项——TCP_KEEPALIVE .
摘要:[+]KEEPALIVE作用KEEPALIVE代码示例KEEPALIVE脚本设置1、KEEPALIVE作用KEEPALIVE机制,是TCP协议规定的TCP层(非应用层业务代码实现的)检测TCP本端到对方主机的TCP连接的连通性的行为。避免服务器在客户端出现各种不良状况时无法感知,而永远等在这条TCP...
阅读全文
posted @
2014-04-18 16:20
bitbit
阅读(838)
推荐(0) 编辑
转:Socket常用选项
摘要:功能描述获取或者设置与某个套接字关联的选 项。选项可能存在于多层协议中,它们总会出现在最上面的套接字层。当操作套接字选项时,选项位于的层和选项的名称必须给出。为了操作套接字层的选项,应该 将层的值指定为SOL_SOCKET。为了操作其它层的选项,控制选项的合适协议号必须给出。例如,为了表示一个选项由...
阅读全文
posted @
2014-04-18 16:18
bitbit
阅读(4314)
推荐(0) 编辑
转:sock_ev——linux平台socket事件框架(event loop) .
摘要:上一篇我们封装了三种事件监听方式,如果分别提供给客户端使用,有点不方便,也不利于统一管理;我们再封装一层EventLoop。/***************************************************************************************...
阅读全文
posted @
2014-04-18 12:00
bitbit
阅读(724)
推荐(0) 编辑
转:sock_ev——linux平台socket事件框架(event dispatcher) .
摘要:最近比较忙,好久没更新了;今天我们看一下事件的监听方式,在linux下面事件的监听方式有三种select、poll、epoll,性能上面epoll最高,如果仅是最多监听十多个描述符,用啥无所谓,如果是几千个呢就非epoll不能胜任了。对三种时间监听方式进行封装,由于行为相似因此都继承于一个抽象基类E...
阅读全文
posted @
2014-04-18 11:57
bitbit
阅读(1407)
推荐(0) 编辑
转:sock_ev——linux平台socket事件框架(socket代理类) .
摘要:前面分析了对socket基本操作的封装,并按照数据的传送方式写了两个类,本篇将写一个代理类提供给库的使用者使用的类。/*************************************************************************************** ***...
阅读全文
posted @
2014-04-18 11:55
bitbit
阅读(672)
推荐(0) 编辑
转:sock_ev——linux平台socket事件框架(socket API的封装) .
摘要:把linux平台提供的有关socket操作的API进行封装是有必要的;基于stream操作的流程与基于dgram操作的流程略有不同,分别放在两个类中,但两者又有很多相似的操作,因此写一个基类,让其继承自这个基类;基类起名为:CommBase,操作stream与dgram两个类分别起名为:Stream...
阅读全文
posted @
2014-04-18 11:52
bitbit
阅读(535)
推荐(0) 编辑
转:sock_ev——linux平台socket事件框架(uri地址的解析) .
摘要:在第一篇中,已经说明,传递的socket地址采取以下形式:[cpp] view plaincopyprint?stream://192.168.2.10:8080 dgram://192.168.2.10:8080 stream://unix.domain.ipc dgram://unix.doma...
阅读全文
posted @
2014-04-18 11:48
bitbit
阅读(809)
推荐(0) 编辑
转:sock_ev——linux平台socket事件框架(logTrace) .
摘要:写代码要有调试log,采用syslog的输出;一般会输出到"/var/log/messages"/*****************************************************************************************************...
阅读全文
posted @
2014-04-18 11:45
bitbit
阅读(672)
推荐(0) 编辑
转:sock_ev——linux平台socket事件框架(基于数据报的测试程序) .
摘要:上一篇已经做过注释,这一篇直接上代码/*************************************************************************************** *******************************************...
阅读全文
posted @
2014-04-18 11:43
bitbit
阅读(238)
推荐(0) 编辑
转:sock_ev——linux平台socket事件框架(基于字节流的测试程序) .
摘要:原文:http://blog.csdn.net/gdutliuyun827/article/details/8257186由于工作与学习的需要,写了一个socket的事件处理框架,在公司写的已经使用了一段时间,下班后回家抽出时间又重写了一下,并进行了完善,起名为:sock_ev;最近正在调试阶段,源...
阅读全文
posted @
2014-04-18 11:41
bitbit
阅读(754)
推荐(0) 编辑
转:使用事件驱动模型实现高效稳定的网络服务器程序
摘要:前言事件驱动为广大的程序员所熟悉,其最为人津津乐道的是在图形化界面编程中的应用;事实上,在网络编程中事件驱动也被广泛使用,并大规模部署在高连接数高吞吐量的服务器程序中,如 http 服务器程序、ftp 服务器程序等。相比于传统的网络编程方式,事件驱动能够极大的降低资源占用,增大服务接待能力,并提高网络传输效率。关于本文提及的服务器模型,搜索网络可以查阅到很多的实现代码,所以,本文将不拘泥于源代码的陈列与分析,而侧重模型的介绍和比较。使用 libev 事件驱动库的服务器模型将给出实现代码。本文涉及到线程 / 时间图例,只为表明线程在各个 IO 上确实存在阻塞时延,但并不保证时延比例的正确性和 I
阅读全文
posted @
2014-04-12 20:19
bitbit
阅读(370)
推荐(0) 编辑
Linux网络编程入门 (转载)
摘要:(一)Linux网络编程--网络知识介绍Linux网络编程--网络知识介绍客户端和服务端 网络程序和普通的程序有一个最大的区别是网络程序是由两个部分组成的--客户端和服务器端. 客户端 在网络程序中,如果一个程序主动和外面的程序通信,那么我们把这个程序称为客户端程序。 比如我们使用ftp程序从另外一 个地方获取文件的时候,是我们的ftp程序主动同外面进行通信(获取文件), 所以这个地方我们的ftp程序就是客户端程序。 服务端 和客户端相对应的程序即为服务端程序。被动的等待外面的程序来和自己通讯的程序称为服务端程序。 比如上面的文件获取中,另外一个地方的程序就是服务端,我们从服务端获取文件过..
阅读全文
posted @
2014-04-11 09:19
bitbit
阅读(2105)
推荐(0) 编辑
select()函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET
摘要:select函数用于在非阻塞中,当一个套接字或一组套接字有信号时通知你,系统提供select函数来实现多路复用输入/输出模型,原型: #include sys/time.h> #include unistd.h> int select(int maxfd,fd_set *rdset,fd_set *wrset,fd_set *exset,struct timeval *timeout); 参数maxfd是需要监视的最大的文件描述符值+1;rdset,wrset,exset分别对应于需要检测的可读文件描述符的集合,可写文件描述符的集 合及异常文件描述符的集合。struct timev
阅读全文
posted @
2014-04-09 16:21
bitbit
阅读(14484)
推荐(1) 编辑