- 博客(6)
- 资源 (4)
- 收藏
- 关注
转载 FileZilla Server源码分析--大漠落日5节
之所以有本系列的分析,是因为两点: FileZilla 是目前非常火爆的开源ftp项目,整个项目采用C++代码编写,代码紧凑可读性高,值得学习(缺陷是注释太少)。网络上已有的对该源码的分析基于的版本是0.9.18,分析比较粗略,无论是框架还是细节。 这里仅仅是我个人对FileZilla Server源码0.9.34版本的分析,能力有限,不足和错误之处还希望大家不吝斧正。 本片作为开篇
2015-04-28 16:00:07 1835
转载 __declspec的用法
__declspec用于指定所给定类型的实例的与Microsoft相关的存储方式。其它的有关存储方式的修饰符如static与extern等是C和C++语言的ANSI规范,而__declspec是一种扩展属性的定义。扩展属性语法简化并标准化了C和C++语言关于Microsoft的扩展。 用法:__declspec ( extended-decl-modifier ) extended-decl-
2015-04-27 09:24:54 503
转载 FileZilla FTP服务器源代码分析
FileZilla是开源的FTP服务器,用C++写的,通过分析它的源代码,可以掌握C++网络编程以及高并发服务器的设计。 FileZilla 是http://sourceforge.net上的项 目,主页是http://sourceforge.net/projects/filezilla, 我们要研究的版本是:FileZilla Server 0_9_18,其实FileZilla还包括客户端
2015-04-24 13:22:39 1563
转载 TCP连接探测中的Keepalive 和心跳包
采用TCP连接的C/S模式软件,连接的双方在连接空闲状态时,如果任意一方意外崩溃、当机、网线断开或路由器故障,另一方无法得知TCP连接已经失效,除非继续在此连接上发送数据导致错误返回。很多时候,这不是我们需要的。我们希望服务器端和客户端都能及时有效地检测到连接失效,然后优雅地完成一些清理工作并把错误报告给用户。 如何及时有效地检测到一方的非正常断开,一直有两种技术可以运用。一种是由TCP协议
2015-04-23 09:47:45 623
转载 TCP的状态,兼谈Close_Wait和Time_Wait的状态 (keepalive机制)
一TCP的状态: 1)、LISTEN:首先服务端需要打开一个socket进行监听,状态为LISTEN. /* The socket is listening for incoming connections. 侦听来自远方TCP端口的连接请求 */ 2)、SYN_SENT:客户端通过应用程序调用connect进行active open.于是客户端tcp发送一个SYN以请求建立一个连接.之后
2015-04-22 15:52:55 1186
转载 TCP连接关闭总结
由于涉及面太广,只作简单整理,有兴趣的可参考《UNIX Networking Programming》volum 1, Section 5.7, 5.12, 5.14, 5.15, 6.6 以及7.5 SO_LINGER选项。 以一个简单的echo服务器为例,客户端从标准输入读入字符,发送给服务器,服务器收到后再原样返回,客户端收到后打印到标准输出。 那么,关于套接字的关闭有以下几种情
2015-04-22 15:29:04 682
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人