Four_Kings
码龄16年
求更新 关注
提问 私信
  • 博客:27,070
    27,070
    总访问量
  • 15
    原创
  • 13
    粉丝
  • 9
    关注
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:湖南省
加入CSDN时间: 2009-12-03
博客简介:

Four_Kings的专栏

查看详细资料
个人成就
  • 获得0次点赞
  • 内容获得2次评论
  • 获得1次收藏
  • 博客总排名996,207名
  • 原力等级
    原力等级
    0
    原力分
    0
    本月获得
    0
创作历程
  • 14篇
    2010年
  • 6篇
    2009年
TA的专栏
  • ace开发随笔
    6篇
  • 杂记
    12篇
  • 读书笔记

TA关注的专栏 0

TA关注的收藏夹 0

TA关注的社区 0

TA参与的活动 0

创作活动更多

新星杯·14天创作挑战营·第13期

这是一个以写作博客为目的的创作活动,旨在鼓励大学生博主们挖掘自己的创作潜能,展现自己的写作才华。如果你是一位热爱写作的、想要展现自己创作才华的小伙伴,那么,快来参加吧!我们一起发掘写作的魅力,书写出属于我们的故事。我们诚挚邀请你们参加为期14天的创作挑战赛!注: 1、参赛者可以进入活动群进行交流、互相鼓励与支持(开卷),虚竹哥会分享创作心得和涨粉心得,答疑及活动群请见:https://bbs.csdn.net/topics/619781944 【进活动群,得奖概率会更大,因为有辅导】 2、文章质量分查询:https://www.csdn.net/qc

80人参与 去参加
  • 最近
  • 文章
  • 专栏
  • 代码仓
  • 资源
  • 收藏
  • 关注/订阅/互动
更多
  • 最近

  • 文章

  • 专栏

  • 代码仓

  • 资源

  • 收藏

  • 关注/订阅/互动

  • 社区

  • 帖子

  • 问答

  • 课程

  • 视频

搜索 取消

关于ACE的日志问题


昨天在做一个小工具的时候,发现ACE_DEBUG在主线程里输出到STDERR和文件都没问题,但在子线程里就只输出到STDERR,不写文件。查看了半天源代码后发现,svc.conf里配置的信息只对ACE_Thread_Manager管理的线程起作用,因为我程序的子线程是在另外一个动态库中生成的,我只是实现库开放接口里的内容,所以折腾了一个来小时。。。最后只能自己另外起个线程来管理自定义的日志输出了。。。
原创
博文更新于 2010.10.30 ·
796 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

一段代码。。。

#include #include #include using namespace std;static const int DEFAULT_NUMBER = 10;static const int DEFAULT_VALUE = 0;vector obj(10,0);ACE_THR_FUNC_RETURN func(void* param){    int index = *(int*)param;    for(int i = 0 ; i     {  
原创
博文更新于 2010.10.24 ·
771 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

ACE的ACE_Logging_Strategy类中的一个多线程安全问题的发现及解决过程

/*************************************              版权声明*   本文为本人原创,本人拥有此文的版权。鉴于本人持续受益于开源软件社区,* 本人声明:任何个人及团体均可不受限制的转载和复制本文,无论是否用于盈利* 之目的,但必须在转载及复制时同时保留本版权声明,否则为侵权行为,本人保* 留追究相应法律责任之权利。*               speng2005@gmail.com*                 
转载
博文更新于 2010.10.08 ·
2044 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

配置开发支持高并发TCP连接的Linux应用程序全攻略


1、修改用户进程可打开文件数限制

   在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每个TCP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄)。可使用ulimit命令查看系统允许当前用户进程打开的文件数限制:
   [speng@as4 ~]$ ulimit -n
   1024
转载
博文更新于 2010.10.08 ·
754 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

试用CMake,感觉不错


总结一下,初学者可以先看看CMake Practice,已经有热心网友翻译成中文版了,还不错。另外可以参考下Apache的Qpid项目,里面也是用的cmake,很有参考意义。
原创
博文更新于 2010.09.28 ·
662 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

VS2005自动关闭的解决方法


我的X61距离上一次重装系统(XP SP3)已经一年了,VS2005也一直使用得好好的。今天心血来潮装了个IE8,重启后再打开项目,VS2005在load project进度条跑到最后的时候,自动关闭了,什么提示都没有。花了一个小时时间才解决这个问题。。。为了避免下次再浪费一小时,总结一下自己解决的方法以及在网上搜罗到的方法。
 
方法一,如果装了VMWare,把VMware Authorization Service、VMware DHCP Service、VMware N
原创
博文更新于 2010.09.27 ·
2057 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

“云计算”学习笔记


最近“云计算”的概念喧嚣尘上,甚是热闹。各路英雄纷纷出来鼓吹“云计算”,如google、Intel、微软、Cisco等等,大家都说云计算的前景多么的好。只有少数不识时务者站出来反对云计算,如Gnu的教父。
下面我对这个“概念”通俗的理解:(1)云计算是一种商业模式,计算运营商为用户提供公共的计算服务,不需要用户自己去购买设备建立和维护自己的计算基础设施,而是购买运营商提供的服务;(2)云计算是一套技术体系,这套体系包括云计算硬件、云计算软件、以及各种软硬件接口的标准。(3)云计算是一个
转载
博文更新于 2010.09.11 ·
1036 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

当出现大量timewait状态的连接时,该如何处理?


1.当不在意丢失少量数据时,可以使用SO_LINGER。
2.windows下,修改注册表,将timewait的时间减少到一个恰当的值。linux下,修改内核里timewait的时间到一个恰当的值,重新编译内核。
3.linux下,修改以下两个参数
/proc/sys/net/ipv4/tcp_tw_reuse:此参数表示是否允许重新应用处于TIME-WAIT状态的socket用于新的TCP连接。
/proc/sys/net/ipv4/tcp_tw_rec
原创
博文更新于 2010.09.06 ·
1917 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

关于10055错误


在windows下做网络开发的,在测试或者产品正式运营时随时有可能碰到这个错误,错误信息是:由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作。
病根在错误信息里已经描述了(系统缓冲区空间不足或队列已满),那么怎么解决这个错误呢?总结下在网上搜索到,以及在朋友遇到这个问题时的解决方法。
1,netstat查看是否有大量处于timewait状态的连接,如果有,那么:a,参考SO_LINGER的使用,能避免timewait状态。b,如果对数据丢失很敏感,那么建议修改注册表中
原创
博文更新于 2010.08.28 ·
8585 阅读 ·
0 点赞 ·
1 评论 ·
3 收藏

文档(注释)的重要性


切记切记,尤其是做ACE开发,很多接口里的实现也许和你想象的不一样,千万不要有思维定势。如果一个函数没有使用过,记得先看头文件里的注释。这方面ACE还算做得不错的,以后也得把看注释养成习惯,吃过很多次亏了!
原创
博文更新于 2010.08.23 ·
718 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

以下均“剽窃”自我的偶像猫哥的博客,仅用做笔记


1.ACE5.7.8在vs2010正式版下不可用

不解释了,下面的转的一段话说得比较清楚了。
It says that you can #define errno WSAGetLastError() and has the following example:
r = recv(...);
if (r == -1 /* (but see below) */
&& WSAGetLastError()
转载
博文更新于 2010.08.21 ·
894 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

墨菲定律(Murphy's Law)

有可能出错的事情,一定会出错(Anything that can go wrong will go wrong)。所以,在日常开发中,如果发现有可能导致BUG或者感觉不太对(这个就靠经验了,有时候还是有点灵验的)的地方一定要趁早修正。不要因为目前还没有爆发就偷懒,因为问题迟早会凸显出来,这个懒始终是偷不掉的,甚至也许日后处理起来会麻烦许多倍。
原创
博文更新于 2010.05.24 ·
819 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

ACE的动态库服务编写要点

1,需要定义宏ACE_BUILD_SVC_DLL2,需要包含ACE/svc_export.h头文件3,用户类必须直接或间接的派生自ACE_Service_Object4,声明服务工厂,ACE_SVC_FACTORY_DECLARE(CLS_NAME),实际上是声明_make_CLS_NAME接口5,实现类中必须的接口,如init、fini6,定义服务工厂,ACE_SVC_FAC
原创
博文更新于 2010.01.23 ·
789 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

再次否定自己的认识(有关DCL)

从熟悉设计模式开始,就一直希望能看到线程安全的单件模式在C++中的完美实现,兼顾性能与安全。在MCD中强迫自己看完整整一章关于线程安全的单件模式实现方案,以为DCL可以做到,不用每次都lock,可是,事实证明C++中的DCL依然是有问题的。原理刚看明白,和CPU的乱序执行以及cache一致性有关,大家google一下就知道了(貌似C++还是有办法让DCL起作用,那就是使用memory ba
原创
博文更新于 2010.01.21 ·
537 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

ACE_DEBUG的匹配符

* Format a message to the thread-safe ACE logging mechanism.  Valid   * options (prefixed by %, as in printf format strings) include:   *  - A: print an ACE_timer_t value (which could be eithe
转载
博文更新于 2009.12.17 ·
701 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

分享一下我的G-reader

订阅的几个个人觉得价值比较高的中文邮件列表以及站点,个人博客下次再总结。 :) http://groups.google.com/group/dev4server/创建者大宝sodme在csdn也有博客,服务器开发方面很不错的邮件列表,很多讨论都比较有深度 http://groups.google.com/group/pongba/创建者pongda在csdn应该也是名人了
原创
博文更新于 2009.12.07 ·
933 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

ACE_Reactor框架随笔之一

ACE_Reactor在注册ACE_Event_Handler派生类对象时,注意要重写ACE_Event_Handler的get_handle函数。因为基类中,此虚函数只是简单的返回ACE_INVALID_HANDLE,不知道设计者是怎么考虑的,并没有将此函数设计成纯虚函数。另外,ACE_Event_Handler的schedule_timer接口中,第三个参数是相对时间(ACE_Timer_
原创
博文更新于 2009.12.03 ·
687 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

有关delete this

使用delete this的场合:对象是从第三方库中通过工厂生成,比如MFC、COM、ACE等,提供类似destroy的接口,客户程序员只能使用destroy来销毁对象,而不应该直接delete对象指针。state模式中,状态对象生成依赖其自身的next_state对象后,主动请求销毁自身,可以使用delete this。简单的说,这一手法就是在对象不是显式new出来的,并且在需要请求
原创
博文更新于 2009.12.03 ·
738 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Heap Corruption detected

出现此种情况,应该是堆栈溢出,一般是分配一个数组空间,在采用下标赋值的时候,下标越界导致的,在delete []的时候,会报错。举个简单的例子char* a = new char[2];a[0] = 1;a[1] = 2;a[2] = 3;delete []a;这个例子只能说明原理,总之,出现此种错误,应该仔细分析下标操作是否正确,或者memcpy中,源类型
原创
博文更新于 2009.12.03 ·
880 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

UNIX网络编程

TCP三路握手步骤:前提:服务器必须准备好接受外来的连接,这通过调用socket、bind和listen函数来完成,称为被动打开。1.客户通过调用connet进行主动打开。这引起客户TCP发送一个SYN分节(表示同步),它告诉服务器客户将在(待建立的)连接中发送的数据的初始序列号。一般情况下SYN不携带数据,它只含有一个IP头部、一个TCP头部及可能有的TCP选项。2.服务器必须确认客
原创
博文更新于 2009.12.03 ·
753 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多