自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 资源 (12)
  • 收藏
  • 关注

转载 TCP超时重传算法

一直以来都是看 《 TCP/IP 协议》这本书来理解 TCP 的一些概念,但发现讲解的不是很清晰(或者是翻译质量的问题)。最近读Tanenbaum 的 《计算机网络第4版》,惊喜的发现这本书对 TCP 的一些概念做了非常清晰易懂的讲解,心头的一些疑问得到了解答。现整理一下我的理解,以加深记忆。  ¨       重传定时器:TCP 必须维护一个重传定时器,以进行超时重传 ¨

2011-06-30 20:45:00 8904

翻译 TCP 网络拥塞控制

一、互联网概述TCP,即传输控制协议,是目前网络上使用的最多的传输协议,我们知道,整个互联网的体系结构是以IP协议提供的无连接的端到端的报文传输服务为基础,在这种体系结构下,那么端到端的数据传输需要自己来保证数据的可靠性,TCP所作的就是这样的工作,它提供了端到端的数据可靠性的传输,当然,在互联网上没有100%的可靠性保证。正是因为TCP的贡献,所以自从提出后就成为了网络的标准传输协议。

2011-06-30 20:24:00 7914

转载 TCP握手协议具体过程

在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。    第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;  第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;    第三次握手:客户端收到

2011-06-30 14:00:00 925

转载 TCP连接关闭过程笔记

TCP协议的连接是全双工连接,一个TCP连接存在双向的读写通道。 简单说来是 “先关读,后关写”,一共需要四个阶段。以客户机发起关闭连接为例:1.服务器读通道关闭2.客户机写通道关闭3.客户机读通道关闭4.服务器写通道关闭关闭行为是在发起方数据发送完毕之后,给对方发出一个FIN(finish)数据段。直到接收到对方发送的FIN,且对方收到了接收确认ACK之后,双方的数据通信完全结束,过程中每次接收

2011-06-30 13:56:00 697

转载 Socket通讯及底层TCP/IP连接原语

摘要:互连网技术屏蔽了底层网络硬件细节,使得异种网络之间可以互相通信。TCP/IP协议组是目前使用最广泛的网络互连协议。由于对网络的兴趣,下面一点通讯的资料与大家分享。 正文: 一、         Socket通讯Socket提供了一个通信端口,应用程序在网络上传输/接收的信息都通过这个Socket接口来实现的。在应用开发中可以像使用文件句柄一样来对Socket句

2011-06-30 11:29:00 2116

转载 Intel Thread Building Blocks (TBB) 的介绍

 1. 在多核的平台上开发并行化的程序,必须合理地利用系统的资源 - 如与内核数目相匹配的线程,内存的合理访问次序,最大化重用缓存。有时候用户使用(系统)低级的应用接口创建、管理线程,很难保证是否程序处于最佳状态。 2. Intel Thread Building Blocks (TBB) 很好地解决了上述问题: a)TBB提供C++模版库,用户不必关注线程,而专注任务本身。 b)抽象层仅

2011-06-15 21:34:00 4377

Java调用C++ API/dll示例程序

完整的展示了Java调用C++ API/dll示例程序. 说明如下: 1. mrSocketAPICInt是准备被java调用的API 2. mrSocketAPIJavaInt是java调用C++ api的中间层 3. mrSocketAPIJavaIntDemo是java程序,展示与C++ api如何对接

2014-04-02

boost自动编译脚本(各版本通用)

boost的自动编译脚本。能将boost自动编译成vs2008、vs2010的32位和64位版本库。最好能配合great3779的博文《编译boost (boost_1_52_0)》一起使用。兼容1_52_0之前的各版本。

2013-01-03

sqlite_demo

sqlite数据库C++使用实例程序。包含了sqlite的源代码以及sqlite_expert的下载链接地址。

2012-05-21

跨平台的模块时间统计套件(C++编写)

在编写时间密集型程序时,我们经常需要统计某些模块(或函数)的时间消耗。在以往实践中,这往往需要添加大量的测试代码,费时费力。正好我目前在公司开发的各类行情FeedHandler恰好也是时间密集型程序,也常常需要测试模块的时间消耗,因此我开发了一个小套件,极大简化了程序各模块的时间统计。

2012-03-14

boost自动编译脚本

boost的自动编译脚本。能将boost自动编译成vs2008、vs2010的32位和64位版本库。最好能配合great3779的博文《编译boost (boost_1_49_0)》一起使用。

2012-03-01

如何设计一个好的API并且为什么它会如此重要

设计一个API供第三方使用,想必是很多程序员都干过的事情。本书从多个角度出发,阐述了如何设计一个好的、优雅的API,并且为什么它会这么重要。希望对各位有所帮助。

2012-02-15

win32.多线程程序设计

Multithreading非常重要。当支持多处理器的操作系统逐渐普及时,具备多处理器的个人计算机也逐渐普及。因此多线程程序设计是每一位技术人员都必须面对的技术。

2012-02-15

提高C++性能的编程技术

如何提高C++性能是一个永恒的话题。本书关注强大和灵活性与良好性能和可伸缩性的结合,从而使两方面均达到最佳。具体主题包括临时对象、内存管理、模板、继承、虚函数、内联、引用计数、STL等。

2012-02-14

一个C++跨平台的轻量级日志类

// 一个跨平台的轻量级日志类。此类在于展示: // 1. 多线程写日志的思想。(写日志的动作不应对主程序产生较大影响) // 2. 展示了跨平台的线程安全、信号通知等机制 // 3. 展示了一个高效的数据处理器 // 4. 展示了回调机制的使用 // 5. 展示了单例的使用 // 6. 间接展示了模板类的使用

2012-01-29

基于Boost的数据处理器及线程安全类和信号量

1. 线程安全的双端队列,可用于多线程中传递数据,数据类型包括二进制流、简单类型、对象等。 2. 封装了boost的condition_variable,使其使用方法很接近Windows的Event。其优势在于能跨平台使用。 3. 封装了boost的mutex,能跨平台使用。 4. 封装了boost的mutex的scoped_lock,能跨平台使用。相对于CWnLock,其优势在于发生异常时能自动解锁,避免线程死锁。 5. // 一个可用于线程间传递数据的类。此类的优势在于: // 1. 跨平台 // 2. 将线程通信间比较难的线程安全、信号通知等机制均封装在对象中 // 3. 由于数据的传递完全依靠事件通知,因此数据的流转效率以及吞吐量均非常高(已经使用在公司海外股票FeedHandler上,吞吐量轻松突破每秒500,000个包) // 4. 接口简单,使用非常方便(可参考BoostDemo程序) // 使用方法 // CDataHandler是一个基类,使用时定义子类对其进行继承。 // 继承类重写DataThread和DataFunc方法(一般情况下仅需重写DataFunc方法即可)

2012-01-04

程序崩溃自动重启以及将未捕获到的异常写退出栈

1. 程序崩溃后,让它能自动重启,继续运行。 2. 对崩溃的程序,在退出前,自动在控制台上输出其退出堆栈详情,以便调试。(适合自动测试程序)

2010-06-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除