DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

2013年11月28日

摘要: 在使用C++编程的过程当中,常常需要对类成员进行初始化,通常的方法有两种:第一种方法:CMYClass::CSomeClass(){ x=0; y=1;}第二种方法:CSomeClass::CSomeClass() : x(0), y(1){}本文将要探讨这两种方法的异同以及如何使用这两种方法。 从技术上说,第二种方法比较好,但是在大多数情况下,两者实际上没有什么区别。第二种语法被称为成员初始化列表,之所以要使用这种语法有两个原因:一个原因是必须这么做,另一个原因是出于效率考虑。 让我们先看一下第一个原因——必要性。设想你有一个类成员,它本身是一个类或者结构,而且只有一个带一个参数... 阅读全文
posted @ 2013-11-28 10:04 DoubleLi 阅读(669) 评论(0) 推荐(0)

摘要: 在socket网络程序中,TCP和UDP分别是面向连接和非面向连接的。因此TCP的socket编程,收发两端(客户端和服务器端)都要有一一成对的socket,因此,发送端为了将多个发往接收端的包,更有效的发到对方,使用了优化方法(Nagle算法),将多次间隔较小且数据量小的数据,合并成一个大的数据块,然后进行封包。这样,接收端,就难于分辨出来了,必须提供科学的拆包机制。 对于UDP,不会使用块的合并优化算法,这样,实际上目前认为,是由于UDP支持的是一对多的模式,所以接收端的skbuff(套接字缓冲区)采用了链式结构来记录每一个到达的UDP包,在每个UDP包中就有了消息头(消息来源地址,端口等 阅读全文
posted @ 2013-11-28 10:01 DoubleLi 阅读(977) 评论(0) 推荐(0)

摘要: 这两天看csdn有一些关于socket粘包,socket缓冲区设置的问题,发现自己不是很清楚,所以查资料了解记录一下:一 .两个简单概念长连接与短连接:1.长连接 Client方与Server方先建立通讯连接,连接建立后不断开, 然后再进行报文发送和接收。2.短连接 Client方与Server每进行一次报文收发交易时才进行通讯连接,交易完毕后立即断开连接。此种方式常用于一点对多点通讯,比如多个Client连接一个Server.二 .什么时候需要考虑粘包问题?1:如果利用tcp每次发送数据,就与对方建立连接,然后双方发送完一段数据后,就关闭连接,这样就不会出现粘包问题(因为只有一种包结构,类似 阅读全文
posted @ 2013-11-28 09:59 DoubleLi 阅读(816) 评论(0) 推荐(0)

摘要: 当前在网络传输应用中,广泛采用的是TCP/IP通信协议及其标准的socket应用开发编程接口(API)。TCP/IP传输层有两个并列的协议:TCP和UDP。其中TCP(transport control protocol,传输控制协议)是面向连接的,提供高可靠性服务。UDP(user datagram protocol,用户数据报协议)是无连接的,提供高效率服务。在实际工程应用中,对可靠性和效率的选择取决于应用的环境和需求。一般情况下,普通数据的网络传输采用高效率的udp,重要数据的网络传输采用高可靠性的TCP。在应用开发过程中,笔者发现基于TCP网络传输的应用程序有时会出现粘包现象(即发送方 阅读全文
posted @ 2013-11-28 09:56 DoubleLi 阅读(828) 评论(0) 推荐(0)

摘要: 转载:http://hi.baidu.com/ah__fu/blog/item/9c5b1236934f84240b55a92b.html下面是他写的无锁队列的文章:Michael &Scott 无锁队列 C++ 实现:http://www.cnblogs.com/napoleon_liu/archive/2010/08/07/1794566.html 这个MS-Queue实现了安全的多个线程入队,多个线程出队。不过因为阶段需要new出来,会有一点影响性能。GCC 之 cas和cas2:http://www.cnblogs.com/napoleon_liu/articles/2006428.h 阅读全文
posted @ 2013-11-28 09:54 DoubleLi 阅读(492) 评论(0) 推荐(0)

摘要: MFC中有不少的全局函数,方便在不同对象中获取不同的内容或创建不同的对象。主要全局函数有:AfxWinInit() AfxBeginThread() AfxEndThread() AfxFormatString1() AfxFormatString2()AfxMessageBox() AfxOutPutDebugString() AfxGetApp() AfxGetMainWnd() AfxGetInstance()AfxRegisterClass()这些函数从名称上可见豹斑(功能)。本文是学习深入浅出MFC后的第一个笔记,解析AfxGetApp()函数在AFXWIN.H中是这么定义的: CW 阅读全文
posted @ 2013-11-28 09:52 DoubleLi 阅读(4505) 评论(0) 推荐(0)

摘要: MFC的设计者们在设计MFC时,紧紧把握一个目标,那就是尽可能使得MFC的代码要小,速度尽可能快。为了这个目标,他们使用了许多技巧,其中很多技巧体现在宏的运用上,实现MFC的消息映射的机制就是其中之一。 同MFC消息映射机制有关的宏有下面几个: DECLARE_MESSAGE_MAP()宏 BEGIN_MESSAGE_MAP(theClass,baseClass)和END_MESSAGE_MAP()宏 弄懂MFC消息映射机制的最好办法是将找出一个具体的实例,将这些宏展开,并找出相关的数据结构。 DECLARE_MESSAGE_MAP() DECLARE_MESSAGE_MAP()宏... 阅读全文
posted @ 2013-11-28 09:51 DoubleLi 阅读(433) 评论(0) 推荐(0)

摘要: 一、什么是窗口类 在Windows中运行的程序,大多数都有一个或几个可以看得见的窗口,而在这些窗口被创建起来之前,操作系统怎么知道该怎样创建该窗口,以及用户操作该窗口的各种消息交给谁处理呢?所以VC在调用Windows的API(CreateWindow或者CreateWindowEx)创建窗口之前,要求程序员必须定义一个窗口类(不是传统C++意义上的类)来规定所创建该窗口所需要的各种信息,主要包括:窗口的消息处理函数、窗口的风格、图标、鼠标、菜单等。其定义如下:typedefstructtagWNDCLASSA(注:该结构为ANSII版本){UINTstyle;WNDPROClpfnWndP. 阅读全文
posted @ 2013-11-28 09:50 DoubleLi 阅读(1192) 评论(0) 推荐(0)

摘要: 话题引入:在C语言时代,当人们使用纯粹的C开发windows应用程序时,只需要通过窗口句柄HWND【HWND是WND的内存句柄,而WND是Windows是一个内部私有数据结构,存储着窗口的相关信息:尺寸信息、标题信息等。一般来说开发人员无法访问这个数据结构,不过可以以HWND为参数调用windows的API函数如:GetWindowRect、GetWindowText等获得对其的访问】即可完成有关窗口的操作。MFC类是C++类机制,MFC的类通过C++的对象方法将窗口的句柄封装起来。存在着窗口句柄(Windows对象)到MFC中C++窗口对象(MFC对象)之间的映射机制,该机制保证了HWND与 阅读全文
posted @ 2013-11-28 09:49 DoubleLi 阅读(541) 评论(0) 推荐(0)

摘要: 侯捷的<深入浅出mfc>相信大家都已经很熟悉了,论坛上也有很多介绍,这里我就不多说了。而李久进的<mfc深入浅出>,听说的人可能就少得多。原因听说是这本书当时没有怎么宣传,而自从1999年第1版后,似乎也没有重印过,现在市面上根本找不到,所以大部分人都不知道。我手里现在恰好有一本,是从图书馆借的。这本书全名为<mfc深入浅出——从mfc设计到mfc编程>李久进编著,华中理工大学出版。此书极佳!我这本书是1999年9月第一版,印数居然只有5000册。这么好的书只印5000册,而市面上都让一堆破烂玩意充斥着……这本书在写作目的上和侯捷的那本<深入浅出mfc>很相像。都是具体介绍mfc的原理和mfc 阅读全文
posted @ 2013-11-28 09:48 DoubleLi 阅读(663) 评论(0) 推荐(0)

摘要: main是C/C++的标准入口函数名WinMain是windows API窗体程序的入口函数。(int WINAPI WinMain()) 中 WINAPI是__stdcall宏,在windef.h中定义的。_tmain _tWinMain 是Unicode版本函数别名,对应与wmain和wWinMain。*****************************************************************************************中有如下几行:#ifdef _UNICODE#define _tmain wmain#define _tWinMa 阅读全文
posted @ 2013-11-28 09:47 DoubleLi 阅读(550) 评论(0) 推荐(0)

摘要: 文档视图结构(Document/ViewArchitecture)是MFC的精髓,也是Observer模式的具体实现框架之一,Document/ViewArchitecture通过将数据和其表示分开,提供了很好的数据层次和表现层次的解耦。然而,虽然我们使用MFCAppWizard就可以很轻松地获得一个支持Document/ViewArchitecture的MFC程序框架,Document/ViewArchitecture本身的复杂性加上VC产生的一系列代码足够让我们眼花缭乱,一时陷入云里雾里不可自拔。加上我们更多的人都没有经过WindowsSDKProgramming的学习和经历就直接进行MF 阅读全文
posted @ 2013-11-28 09:46 DoubleLi 阅读(395) 评论(0) 推荐(0)

摘要: CWnd::FromHandlePermanent ——根据窗口句柄得到CWnd*指针This function, unlikeFromHandle, does not create temporary objects.CWnd::FromHandle——根据窗口句柄得到CWnd*指针CWnd* PASCAL CWnd::FromHandle(HWND hWnd){CHandleMap* pMap = afxMapHWND(TRUE); //create map if not existASSERT(pMap != NULL);CWnd* pWnd = (CWnd*)pMap->From 阅读全文
posted @ 2013-11-28 09:45 DoubleLi 阅读(1085) 评论(0) 推荐(0)

摘要: 1、创建和终止线程 在MFC程序中创建一个线程,宜调用AfxBeginThread函数。该函数因参数不同而具有两种重载版本,分别对应工作者线程和用户接口(UI)线程。 工作者线程CWinThread *AfxBeginThread( AFX_THREADPROC pfnThreadProc, //控制函数 LPVOID pParam, //传递给控制函数的参数 int nPriority = THREAD_PRIORITY_NORMAL, //线程的优先级 UINT nStackSize = 0, //线程的堆栈大小 DWORD dwCreateFlags = 0, //线程的创建标志 L.. 阅读全文
posted @ 2013-11-28 09:44 DoubleLi 阅读(1588) 评论(0) 推荐(0)

摘要: CL.exe是控制Microsoft C和C++编译器与链接器的32位工具。编译器产生通用对象文件格式(COFF)对象(.obj)文件。链接器产生可执行文件(.exe)或动态链接库文件(DLL)。注意,所有编译器选项都区分大小写。若要编译但不链接,请使用/c。使用NMAKE生成输出文件。使用BSCMAKE支持类浏览。以下是一个完整的编译器选项分类列表。优化选项 作用/O1 创建小代码/O2 创建快速代码/Oa 假设没有别名/Ob 控制内联展开/Od 禁用优化/Og 使用全局优化/Oi 生成内部函数/Op 改善浮点数一致性/Os 代码大小优先/Ot 代码速度优先/Ow 假定在函数调用中使用别名/ 阅读全文
posted @ 2013-11-28 09:43 DoubleLi 阅读(1356) 评论(0) 推荐(0)

摘要: 在程序编译完成后,生成的文件是以.obj为扩展名的对象文件,link.exe是将这些对象文件与库链接起来以创建可执行文件或动态链接库文件的工具。link.exe的输入文件包括obj文件、lib文件、exp文件、def文件、res文件、txt文件、ilk文件等等,而输出的文件一般是exe文件、dll文件、sys文件等可执行程序文件。1、命令行参数link.exe运行参数如下:LINK [options] files参数包括选项和文件名,选项和文件名可按任意顺序指定。link会首先处理选项,然后是文件。各参数间必须使用一个或多个空格或制表符来分隔。2、输入文件参数中的files是指链接器的输入文件 阅读全文
posted @ 2013-11-28 09:42 DoubleLi 阅读(5441) 评论(0) 推荐(0)

摘要: Windows应用程序中,图标、菜单、畏途、图标、工具条、对话框等是以资源的形式存在的。开发人员也可以自定义资源类型。如果一个程序使用了资源,那么它在构建时需要对资源进行编译。程序所使用的资源会在资源脚本文件(*.rc)中进行描述编写,编译时,资源编译器会将*.rc文件编译为可链接的.res文件。(资源中可以包括字符串)1、命令行参数使用如下方式在命令行中运行rc.exeRC [options] srcipt-fileoptions是编译选项,script-file是需要编译的资源脚本文件。用户可以使用如下方式调用:rc.exe /n /fo Hello.res Hello.rc2、资源编译器 阅读全文
posted @ 2013-11-28 09:41 DoubleLi 阅读(2405) 评论(0) 推荐(0)

摘要: 这一章节介绍的全是VC编译器选项,option参数是cl.exe的编译选项,是cl.exe命令行参数中最复杂、也是最常用的。下面介绍一些常用的编译选项:1、代码生成有关这些选项将影响编译完成后生成的机器代码:2、调试有关与调试有关的编译选项如下图,/Z7、/Zi、/ZI这三个选项是对程序进行调试时所必需的选项,同时注意,在生成调试版本的程序时,需要指定/Od选项以禁用优化:3、程序优化有关与程序优化有关的选项如下图,优化选项将影响编译器对代码的优化,最选择代码体积最小还是选择运行速度最快等需要使用这些选项:4、输出文件有关与生成的输出文件有关的选项如下图,输入文件在参数中需要使用字符串来指定其 阅读全文
posted @ 2013-11-28 09:40 DoubleLi 阅读(610) 评论(0) 推荐(0)

摘要: cl.exe的功能是将源代码文件编译为可提供链接器使用的obj对象文件。cl.exe命令行参数形式如下:CL (option...) file... [option | file]... [lib...] [@command-file] [/link link-opt...]各命令行参数的意义如下 :1、option命令行中的"option"是指一个或多个编译选项。在指定选项时,需要在选项前加正斜杠(/)或一个短划线(-)。有一些选项还会带有参数,使用":"来指定选项的参数。比如"/sybsystem:windows,5.0"是一个编 阅读全文
posted @ 2013-11-28 09:39 DoubleLi 阅读(895) 评论(0) 推荐(0)

摘要: 资源档有什麽用处呢?最重要的有两个地方1.国际发行:我们将Application中所有的文字从Resource用读取,那麽,只要更动 Resource档的内容,就可以用不同语言的方式来显示。2.管理资源:例如说,我们的AP中用了数百张的图片或声音,不用Resource档的话, 在发行出去的AP中,就必需有数百个图形、声音档,那似乎不太好,使 用Resource档,便可以将这些图形、声音放进一个.Res档。使用RC.exe来Compiler我们所定义的Resource档, RC.EXE在vb5.0光碟中的/TOOLS/RESOURCEResources 可分成两大部份:- String reso 阅读全文
posted @ 2013-11-28 09:38 DoubleLi 阅读(1159) 评论(0) 推荐(0)

摘要: MS Windows操作系统是一个世界上广泛使用的操作系统,对于不同语种的国家MS Windows有相应语种的版本。在不同语种的Windows平台上应该运行相应语种的应用程序。也就是说程序的用户界面(如菜单、对话框、状态条)中的提示文字应该使用和Windows操作系统所使用的语种一致。当然英语用户界面的程序可以运行在其它语言平台上,但比较复杂的程序或多或少都有问题,如对话框的尺寸不对,特殊的ASCII字符显示为文字,输入字符串可能会导致死机等。如果不一致却还想使用,则需要动态翻译软件。例如,在英文Windows平台上运行中文版的MS Office就需要像中文之星或四通利方这样的中文动态翻译软件 阅读全文
posted @ 2013-11-28 09:37 DoubleLi 阅读(878) 评论(0) 推荐(0)

摘要: DDX/DDV 通过使用ClassWizard向对话类添加成员变量,你可以利用ClassWizard所提供的高效特征,为对话数据交换和对话数据验证自动生成源代码,也就是人们所熟知的DDX/DDV。 数据交换和验证仅仅应用于为之选定了Value类别的成员变量。也就是CString,BOOL,数字,COleDateTime或COLeCurrency。 对话数据交换负责数据在控件中的进出。当对话首次出现的时候,每个控件窗口自动用相应的成员变量的值进行初始化。当用户通过单击OK按钮,或通过按Enter键关闭对话的时候,该控件无论是包含哪一个值或文本,都将被复制回该变量。 对话数据验证可以确保值落在规定 阅读全文
posted @ 2013-11-28 09:36 DoubleLi 阅读(3329) 评论(0) 推荐(0)

摘要: 在Windows应用程序中,窗体是由一种称为“UI线程(User Interface Thread)”的特殊类型的线程创建的。 首先,UI线程是一种“线程”,所以它具有一个线程应该具有的所有特征,比如有一个线程函数和一个线程ID。 其次,“UI线程”又是“特殊”的,这是因为UI线程的线程函数中会创建一种特殊的对象——窗体,同时,还一并负责创建窗体上的各种控件。 窗体和控件大家都很熟悉了,这些对象具有接收用户操作的功能,它们是用户使用整个应用程序的媒介,没有这样一个媒介,用户就无法控制整个应用程序的运行和停止,往往也无法直接看到程序的运行过程和最终结果。 那么,窗体和控件又是如何作到对用... 阅读全文
posted @ 2013-11-28 09:35 DoubleLi 阅读(1454) 评论(0) 推荐(0)

摘要: 说到消息,在MFC中,“最熟悉的神秘”可算是消息映射,那是我们刚开始接触MFC时就要面对的东西。有过SDK编程经验的朋友转到MFC编程的时候,一下子觉得什么都变了样。特别是窗口消息及对消息的处理跟以前相比,更是风马牛不相及的。如文档不是窗口,是怎样响应命令消息的呢?初次用MFC编程,我们只会用MFC ClassWizard为我们做大量的东西,最主要的是添加消息响应。记忆中,如果是自已添加消息响应,我们应何等的小心翼翼,对BEGIN_MESSAGE_MAP()……END_MESSAGE_MAP()更要奉若神灵。它就是一个魔盒子,把我们的咒语放入恰当的地方,就会发生神奇的力量,放错了,自己的程序就 阅读全文
posted @ 2013-11-28 09:29 DoubleLi 阅读(465) 评论(0) 推荐(0)

摘要: //////////////////////////////////////////////////////////////////////////////////// /********* 文章系列:MFC技术内幕系列***********/ /************MFC技术内幕系列之(四)***********/ /*****文章题目:MFC消息映射与消息传递内幕******/ /* All rights Reserved */ / *********关键字:消息映射,消息传递************/ /* 注释:本文所涉及的程序源代码均在Microsoft */ / Visual. 阅读全文
posted @ 2013-11-28 09:28 DoubleLi 阅读(574) 评论(0) 推荐(0)

摘要: 在上一课的表5.1已经列出了Windows的传统控件及其对应的控件类。在这些控件中,读者应该重点掌握命令按钮、选择框、单选按钮、编辑框、列表框和组合框。.1.1 传统控件的控件通知消息 控件通过向父窗口发送控件通知消息来表明发生了某种事件.例如,当用户在按钮上单击鼠标时,按钮控件会向父窗口发送BN_CLICKED消息.传统控件的通知消息实际上是通过WM_COMMAND消息发给父窗口的(滚动条除外),在该消息的wParam中含有通知消息码(如BN_CLICKED)和控件的ID,在lParam中则包含了控件的句柄. 利用ClassWizard可以很容易地为控件通知消息加入消息映射和消息处理函... 阅读全文
posted @ 2013-11-28 09:27 DoubleLi 阅读(1140) 评论(0) 推荐(0)

摘要: 详细说明:Visual c++例子,可不使用常规的对话框资源模板的情况下,动态创建对话框的方法。该方法可以在运行时在内存中直接建立对话框资源,使用起来更为灵活。适用于多个开发项目共享有界面的公用程序模块的情况,也适用于编写需要显示大量对话框或对话框风格随着用户输入不断变化的应用程序。下载地址1:http://files.cnblogs.com/lidabo/CDynamicDialogWithoutTemplate.rar下载地址2:http://www.pudn.com/downloads65/sourcecode/windows/dialog/detail233221.html 阅读全文
posted @ 2013-11-28 09:23 DoubleLi 阅读(755) 评论(0) 推荐(0)

摘要: 在MFC程序中使用对话框时首先在资源模版里创建对话框资源,然后DoModal()或者CReate显示出模式对话框或者非模式对话框,这样创建出的对话框移植性差,从一个工程移动到另一个工程比较麻烦。 在MFC中还有另一种创建对话框的方法:1 在内存中建立对话框资源模版DLGTEMPLATE结构体。2 使用InitModalIndirect API函数即可创建模式对话框,非模式对话框使用CreateDialog API函数创建。代码如下:// 创建内存对话框资源模版类,H文件#pragma once#define DLG_TEMPLATE_BUFFER_MAX_LENGT1024class CDlg 阅读全文
posted @ 2013-11-28 09:15 DoubleLi 阅读(1996) 评论(0) 推荐(2)

摘要: DDB(Device-dependent bitmap)依赖于具体设备,这主要体现在以下两个方面:DDB的颜色模式必需与输出设备相一致。例如,如果当前的显示设备是256色模式,那么DDB必然也是256色的,即一个像素用一个字节表示。在256色以下的位图中存储的像素值是系统调色板的索引,其颜色依赖于系统调色板。 由于DDB高度依赖输出设备,所以DDB只能存在于内存中,它要么在视频内存中,要么在系统内存中。 11.3.1 DDB的创建MFC的CBitmap类封装了DDB。该类提供了几个函数用来创建DDB:BOOL LoadBitmap( LPCTSTR lpszResourceName );BOO 阅读全文
posted @ 2013-11-28 09:10 DoubleLi 阅读(4520) 评论(0) 推荐(0)

摘要: DDB(设备相关位图)DDB依赖于具体设备:DDB的颜色模式必需与输出设备相一致。例如,如果当前的显示设备是256色模式,那么DDB必然也是256色的。在256色以下的位图中存储的像素值是系统调色板的索引,其颜色依赖于系统调色板。由于DDB高度依赖输出设备,所以DDB只能存在于内存中,它要么在视频内存中,要么在系统内存中DIB的与设备无关性主要体现在以下两个方面:DIB的颜色模式与设备无关。例如,一个256色的DIB即可以在真彩色显示模式下使用,也可以在16色模式下使用。256色以下(包括256色)的DIB拥有自己的颜色表,像素的颜色独立于系统调色板。由于DIB不依赖于具体设备,因此可以用来永 阅读全文
posted @ 2013-11-28 09:09 DoubleLi 阅读(1027) 评论(0) 推荐(0)

摘要: *[标题]:Skin++通用界面换肤系统V2.0.1破解探讨*[作者]:gz1X *[来自]:中国黑客联盟*[前言]:skin技术,大家都不会陌生,比如winamp,可以灵活的更换界面风格。早期的实现定制的外观方法都需要程序本身做许多处理,编码太麻烦。后来出现了专门的Skin插件,ActiveSkin什么的。再后来dll调用的skin软件出现,需要Skin支持的程序调用几个方法,就可以使自己的程序外观完全改变,不需要编程者对skin技术有任何的了解。Skin++通用界面换肤系统V2.0.1就是其中比较出名的一款。但是让很多“贫民”用户来说,要收费还是比较让人烦的。恰好我前几天做了个小项目,顺便 阅读全文
posted @ 2013-11-28 09:08 DoubleLi 阅读(1211) 评论(0) 推荐(0)

摘要: Poco::TCPServer框架解析POCO C++ Libraries提供一套 C++ 的类库用以开发基于网络的可移植的应用程序,功能涉及线程、文件、流,网络协议包括:HTTP、FTP、SMTP 等,还提供 XML 的解析和 SQL 数据库的访问接口。不仅给我的工作带来极大的便利,而且设计巧妙,代码易读,注释丰富,也是非常好的学习材料,我个人非常喜欢。POCO的创始人在这个开源项目的基础上做了一些收费产品,也成立了自己的公司,"I am in the lucky position to work for my own company",真是让人羡慕啊。POCO C++ 阅读全文
posted @ 2013-11-28 09:05 DoubleLi 阅读(1609) 评论(0) 推荐(0)

摘要: Wooce Yang收集整理POCO的优点:1) 比boost更好的线程库,特别是一个活动的方法的实现,并且还可设置线程的优先级。2) 比 boost:asio更全面的网络库。但是boost:asio也是一个非常好的网络库。3) 包含了一些Boost所不包含的功能,像XML,数据库接口等。4) 跟Boost相比,集成度更高,是更加统一的一个库。5) Poco的c++代码更清洁,现代和易理解。对不是模板编程专家的人来说,POCO的代码比大多数Boost库容易理解得多6) 可以在许多平台上使用POCO的缺点:1) 文档有限。但这一定程度上是因为代码的容易理解。2) 跟Boost相比用户社群小得多。 阅读全文
posted @ 2013-11-28 09:04 DoubleLi 阅读(861) 评论(0) 推荐(0)

摘要: 陈硕 (giantchen_AT_gmail)Blog.csdn.net/SolsticeMuduo 全系列文章列表: http://blog.csdn.net/Solstice/category/779646.aspx我将会写一系列文章,介绍用muduo 网络库完成常见的 TCP 网络编程任务。目前计划如下:UNP中的简单协议,包括 echo、daytime、time、discard 等。Boost.Asio中的示例,包括 timer2~6、chat 等。Java Netty中的示例,包括 discard、echo、uptime 等,其中的 discard 和 echo 带流量统计功能。Py 阅读全文
posted @ 2013-11-28 09:02 DoubleLi 阅读(1155) 评论(0) 推荐(0)