
C++ 网络编程
文章平均质量分 56
will_hsbsch
这个作者很懒,什么都没留下…
展开
-
boost 1.55.0 Xcode 5.1 iOS/iOSSim交叉编译iOS7.1
1 和 以前的 交叉编译一致:在用户目录下建立user原创 2014-08-11 20:50:19 · 1697 阅读 · 3 评论 -
Boost socket performance on Linux
Four ways to speed up your network applicationsDocument optionsPrint this pageE-mail this page Docu转载 2014-08-20 15:15:28 · 1851 阅读 · 0 评论 -
(from AVBoost) 异步遍历文件夹
#pragma once#include #include #include #include #include namespace boost{namespace detail{templateclass async_dir_walk{boost::asio::io_service &io_service;boost转载 2014-06-06 22:18:55 · 780 阅读 · 0 评论 -
boost::bind和占位符实现的原理(from AV BOOST)
boost.bind是个非常强大的工具,有了它,我们可以轻松的将不同模块的代码,从物理上分离,从而达到解耦的作用。当你开始尝试使用boost.bind来进行编程的时候,你会发现自己不知不觉中贱贱的爱上了boost.bind,因为作用不止是解耦,还有很多说不尽道不明的地方需要它。但是从来很少有人详细的说明它是如何工作(实现)的,这里,我打算用一小段简单的代码,模拟boost.bind转载 2014-06-06 15:42:34 · 2895 阅读 · 0 评论 -
boost递归锁和非递归锁区别
Mutex可以分为递归锁(recursive mutex)和非递归锁(non-recursive mutex)。可递归锁也可称为可重入锁(reentrant mutex),非递归锁又叫不可重入锁(non-reentrant mutex)。 二者唯一的区别是,同一个线程可以多次获取同一个递归锁,不会产生死锁。而如果一个线程多次获取同一个非递归锁,则会产生死锁。原创 2014-04-28 16:57:34 · 2308 阅读 · 0 评论 -
动态库的显式调用和隐式调用的默认参数问题
dll 调用分隐式和显式调用显式调用显式调用不会用函数声明和导出的接口,不会知道函数的具体声明。在使用GetProcAddress获取函数指针时只需指明函数的名字。如果在声明函数指针时未加默认参数,则实际调用该函数时默认参数会传入一个异常值,而不是默认的值,默认值失效。正确的使用方法是显式调用时默认参数必须加上。隐式调用隐式调用会用函数声明和导出的接口,知道函数的具体声明,原创 2014-04-27 18:11:17 · 1041 阅读 · 0 评论 -
C++的map::erase
产品代码在map中循环删除元素通常有两种方法:举例:iterator自加 std::map::iterator buffer_ite = buffer_file_heads_mgmt_.begin(); for ( ; buffer_ite != buffer_file_heads_mgmt_.end(); ) { delete buffer原创 2014-04-27 18:13:59 · 1034 阅读 · 0 评论 -
各种TCP版本 之 TCP Reno 与 TCP Vegas 共存
实验目的 探讨TCP Vegas的提出,TCP Vegas的内涵 ,TCP Vegas 的优越性及其没有在Internet上广泛应用的主要原因。基础知识回顾【TCP Reno 性能分析】 前面,我们了解了TCP Tahoe、TCP Reno系列及TCP Sack的工作原理,通过实验,将各种TCP版本进行了对比。综合来看,即使源端不通过转载 2014-12-22 17:02:37 · 4861 阅读 · 3 评论