使用 acl 库编写数据库应用程序 acl 的 C++ 版本库(lib_acl_cpp.a)的 db 模块主要与数据库编程相关,通过这些模块库,开发者可以快速地写出支持数据库连接池的数据库应用程序,目前该 db 模块支持 mysql、sqlite 数据库。本文将以 mysql 应用为例讲述如何使用这些 API 接口编程数据库应用。 在 lib_acl_cpp/include/acl_cpp/db 目录下 2014-09-03 数据库编程
使用 acl_cpp 库中的 http_request 类实现一个 HTTP 客户端请求的例子 之前写过几篇如何使用 acl 库来实现 HTTP 客户端的例子都是基于 C 语言(使用 acl 较为底层的 HTTP 协议库写 HTTP 下载客户端举例, 使用 acl 库开发一个 HTTP 下载客户端),其实在 acl 的 C++ 库(lib_acl_cpp) 中 HTTP 类功能更为强大,本节将介绍如何使用 acl::http_request 类来写一些简单的 HTTP 客户端示例。 一、 a 2014-06-02 http开发 #http
使用 acl 库开发简单的客户端与服务器程序 acl 的 C++ 库部分也提供了一些简单的服务器类,本文将介绍如何使用这些简单的类来实现一些服务器程序和网络客户端程序。 首先介绍 acl 中的服务器类:server_socket。该类定义了如下几个简单方法: 12345678910111213141516171819202122232425262728293031/** * 开始监听给定服务端地址 * @param addr {co 2014-05-18 网络编程
线程池设计中的惊群问题 多线程编程已经是现在网络编程中常用的编程技术,设计一个良好的线程池库显得尤为重要。在 UNIX(WIN32下可以采用类似的方法,acl 库中的线程池是跨平台的) 环境下设计线程池库主要是如何用好如下系统 API: 1、pthread_cond_signal/pthread_cond_broadcast:生产者线程通知线程池中的某个或一些消费者线程池,接收处理任务; 2、pthread_ 2014-03-09 线程编程
使用 acl_cpp 库编写多线程程序 在 《利用ACL库开发高并发半驻留式线程池程序》中介绍了如何使用 C 版本的 acl 线程库编写多线程程序,本文将会介绍如何使用 C++ 版本的 acl 线程库编写多线程程序,虽然 C++ 版 acl 线程库基于 C 版的线程库,但却提供了更为清晰简洁的接口定义(很多地方参考了 JAVA 的线程接口定义)。下面是一个简单的使用线程的例子: 12345678910111213141516171819 2013-10-26 线程编程
acl 日志记录方式介绍 在使用 acl 库编写应用过程中,记录日志是一个非常重要的过程,acl 从几个层面提供了日志的不同记录方式。在 acl 的 C 库部分(lib_acl.a),有三个源文件与日志记录相关:acl_msg.c/acl_msg.h, acl_mylog.c/acl_mylog.h, acl_debug.c/acl_debug.h。其中,acl_mylog.c 是真正记录日志 2013-06-23 日志
使用 acl 库 rpc 功能类实现 阻塞任务过程与MFC 界面过程分离 一、概述MFC 程序员在编写 Windows 界面程序时经常需要处理一些阻塞任务过程,为了避免阻塞窗口的消息过程,一般会将阻塞过程将由一个子线程处理,该子线程在处理过程中通过向界面线程发送 Windows 窗口消息将处理结果传递给窗口线程。在 acl 库中的 rpc 功能类实现了更为方便的处理方式,通过 rpc 功能类,用户可以在主线程中进行非阻塞过程(如:界面消息过程或网络非阻塞通讯过程),而将 2013-02-24 非阻塞编程
acl_cpp 的 rpc 相关类整合阻塞及非阻塞过程 一、概述非阻塞网络编程无疑成了高并发、高性能编程的代名词,但现实应用编程中并不是每种应用都需要采用非阻塞编程模式,因为这将大大增加编程的复杂性、开发周期以及出错率,所以我们写的绝大部分网络程序程序都是阻塞的,一般是一个进程一个网络连接或一个线程一个网络连接。即然非阻塞模式可以实现高并发网络连接,阻塞模式可以实现复杂的业务逻辑,那是否有办法将二者结合起来呢?答案是肯定的,其中在 acl_cpp 库中 2012-07-13 非阻塞编程
用 acl::master_aio 类编写高并发非阻塞服务器程序 在文章《使用 acl::master_threads 类编写多进程多线程服务器程序》讲述了如何编写 LINUX 平台下阻塞式服务器程序的多线程。虽然这种模式都可以处理并发任务,并且效率也不低,但是毕竟线程和进程资源是操作系统的宝贵资源,如果要支持非常高的并发请求,则会因为系统限制而不能创建更多的进程或线程。大家常见的 webserver Nginx 就是以支持高并发而闻名,Nginx 本身就是非阻 2012-05-30 服务编程
使用 acl::master_threads 类编写多进程多线程服务器程序 本文主要讲述如何使用 acl_cpp 中的 master_threads 类编写可以由 acl_master 服务器父进程控制的服务器应用程序。 一、类接口说明master_threads 是一个纯虚类,其中定义的接口需要子类实现,如下: 1234567891011121314151617181920212223242526272829303132/** * 纯虚函数:当某个客户端连接有数据可读或 2012-05-26 服务编程