Webcc: 轻量级 C++ HTTP 程序库

2019-08-14
阅读 6 分钟
16.2k
几年前,它只支持简单的 SOAP 调用(名字叫 cSoap),结果慢慢演化成了一个纯粹的 HTTP 程序库,目前有 250 多次代码提交,还在不断完善,且应用在了我们公司的产品中,击败了 Qt 的 QtHttpServer。几乎是 C++ 最好用最完善的 HTTP 程序库了。

Webcc:基于 Asio 的 C++ REST 程序库

2018-05-24
阅读 3 分钟
5.9k
Webcc 是我自己写的一个 C++ Web Service 程序库,网络通信基于 Boost Asio,跨平台,轻量、高效。它并非只是一个玩具,目前正应用于我们实际的项目,而且还在不断更新和完善。

Asio 注意事项

2018-01-29
阅读 6 分钟
12.2k
在包含 Asio 头文件之前,定义宏 BOOST_ASIO_NO_DEPRECATED,这样在编译时,Asio 就会剔除那些已经过时的接口。

浅析 Python 的类、继承和多态

2017-07-04
阅读 5 分钟
8.5k
最最基本的就是 __init__ 方法,相当于 C++ / Java 的构造函数。带双下划线 __ 的方法都是特殊方法,除了 __init__ 还有很多,后面会有介绍。

C++ 调用 SOAP Web Service

2017-06-21
阅读 4 分钟
12.3k
首先,gSoap 肯定是个不错的选择,但是如果你的程序要调用多个 Web Services(即有多个 WSDL),gSoap 会比较麻烦。还有一个问题就是,gSoap 从 WSDL 自动生成的代码实在是太难用了。当然,这些都不是什么问题,真在的问题是许可证(License),gSoap 用在商业产品中是要收费的。

基于 Asio 的 C++ 网络编程

2016-10-20
阅读 12 分钟
49.3k
说明:这篇教程形成于 Boost v1.62 时代,最近(2018/01)针对 v1.66 做了一次大的更新。此外,在代码风格上,C++11 用得更多了。

C++ 并发编程(七):读写锁(Read-Write Lock)

2016-09-19
阅读 2 分钟
58.9k
STL 和 Boost 都提供了 shared_mutex 来解决「读者-写者」问题。shared_mutex 这个名字并不十分贴切,不如 pthread 直呼「读写锁」。

C++ 并发编程(六):信号量(Semaphore)

2016-09-05
阅读 4 分钟
36.1k
Semaphore is a counter limiting the number of threads concurrently accessing a shared resource.This counter is always between 0 and the maximum value specified during the semaphore creation. When the counter is strictly greater than 0, a call to Wait returns immediately and decrements the counter...

C++ 并发编程(五):生产者 - 消费者

2016-08-24
阅读 3 分钟
24.8k
生产者 - 消费者(Producer-Consumer),也叫有限缓冲(Bounded-Buffer),是多线程同步的经典问题之一。详见 Wikipedia。

C++ 并发编程(四):基于 Asio 的线程池

2016-08-23
阅读 2 分钟
23.8k
目前项目中使用的线程池(详见:[链接]),虽然能用,但是代码复杂且很久没有人维护了。 本文结合 Thread 和 Asio,实现了一个线程池。一二十行代码,不能更简单了! 头文件: {代码...} 线程池类: {代码...} 成员变量 work_guard_ 的作用是,让 io_context 即使在没有异步任务可执行时也保持运行(即 io_context::run ...

C++ 并发编程(三):条件变量(Condition Variable)

2016-08-22
阅读 2 分钟
51.5k
条件变量(Condition Variable)的一般用法是:线程 A 等待某个条件并挂起,直到线程 B 设置了这个条件,并通知条件变量,然后线程 A 被唤醒。经典的「生产者-消费者」问题就可以用条件变量来解决。

C++ 并发编程(二):Mutex(互斥锁)

2016-08-17
阅读 3 分钟
41.5k
The mutex class is a synchronization primitive that can be used to protect shared data from being simultaneously accessed by multiple threads.

C++ 并发编程(一):创建线程

2016-08-10
阅读 3 分钟
17.9k
这个系列是我近期学习 C++ 并发编程的总结,文章和代码最初都是基于 Boost.Thread,但是最近越来越发现,STL 内置的线程和同步工具已经足够完善了。

C++ 程序嵌 Lua(基于 LuaBridge)

2016-06-21
阅读 8 分钟
12.9k
Lua 的源码自带 Makefile,可以编译出静态库、解释器、编译器三个目标文件,作为宿主的 C++ 程序,除了要包含 Lua 头文件,还应该链接这个静态库。

C++ 的脚本语言:ChaiScript

2016-06-15
阅读 4 分钟
11.3k
ChaiScript 是一个可以方便的嵌在 C++ 程序里的脚本语言,相比于 V8(Google JavaScript)和 Lua 来说,它的用法要简单得多。 ChaiScript 和 STL 一样只有头文件,缺点是编译慢,而且因为大量使用模板,编译就更慢。 说明: 本文示例代码一律假定已经 using namespace chaiscript。 本文已经有些年头了,不代表 ChaiScri...

你可能不知道的 C++(二)

2016-01-17
阅读 10 分钟
6.3k
第一部分:你可能不知道的 C++(一) 此为《你可能不知道的 C++》的第二部分,讨论 类型,内联 & 模板。 类型 我们不讨论原始类型(int, double, etc.)和结构。原始类型比较简单,而结构其实就是类。 本节包含以下几个方面: 联合 类 指针和引用 常量 转型 联合 联合(union)的元素共用同一块内存空间,联合的大小...

你可能不知道的 C++(一)

2016-01-13
阅读 7 分钟
6.8k
说明:本文面向有经验的 C++ 程序员,不适合初学者。 第二部分:你可能不知道的 C++(二) 此为《你可能不知道的 C++》的第一部分,讨论 C & C++,编译单元,及对象。 C++ has indeed become too "expert friendly".C++ 着实已经变得太“面向专家”了。 Bjarne Stroustrup, The Problem with Programming, Technology ...