原创 boost::asio序列17: basic_datagram_socket 和 basic_stream_socket
explicit basic_datagram_socket(const executor_type& ex) 和 template <typename ExecutionContext> explicit basic
原创 boost::asio 序列19: basic_resolver
explicit basic_resolver(const executor_type& ex) 和 template <typename ExecutionContext> explicit basic_resolver
原创 boost::asio序列14:basic_io_object
關聯io_context對象,實際上是獲取io_context關聯的service,並且,service用於實際的I/O操作和對應Handler配發 // Type trait used to determine whether a
原创 boost::asio 序列18:basic_socket_acceptor
explicit basic_socket_acceptor(const executor_type& ex) 和 template <typename ExecutionContext> explicit basic_s
原创 boost::asio序列3: execution_context
函數名稱 void notify_fork(fork_event event) enum fork_event { /// Notify the context that the process is about to fo
原创 boost::asio序列6: io_context
io_context的具體實現如下代碼,io_context最主要的函數爲: (1) 構造函數,其中參數控制並行的線程數,對於性能比較重要,具體如下,實際上,就是構造函數的參數爲1或者爲BOOST_ASIO_CONCURRENCY_HI
原创 boost::asio序列: boost::bind 和 std::bind
1. 採用boost::bind #include <iostream> #include <boost/asio.hpp> #include <boost/bind.hpp> #include <boost/date_time/pos
原创 boost::asio序列: boost::bind 和 std::bind 和 class member function
1. boost::bind => class member function #include <iostream> #include <boost/asio.hpp> #include <boost/bind.hpp> #incl
原创 Boost::Asio 序列: 域名解析
// #include <QCoreApplication> /* * ModuleName: Main * Description: Boost::asio::ip::tcp::resolver * Author: hsw *
原创 std::bind 可變參數模板函數
#include <iostream> #include <string> #include <functional> using namespace std; class TestBindVar { public: t
原创 std::bind和std::function
在C++11中增加的新特性,爲C++編程提供了極大的方便,可以用來替換的函數指針,當然,對比函數指針,std::function更加簡單,因爲它更像一個對象; 如下代碼顯示了幾種常用的形式,分別爲類普通成員函數,類靜態函數,普通靜態函數和
原创 C++函數類型和函數指針
函數類型(FuncType)和函數指針(FuncPointer) 函數指針: 指向函數的的指針,和普通的指針無本質區別 函數類型: 由函數返回值類型/函數參數類型決定,和函數名稱無關 例如: 對於函數: bool my_function
原创 std::bind 和 成員函數中的重載函數
#include <iostream> #include <functional> class testBind { public: void print(int num) { std::cout <<
原创 websocket++序列: Server
websocket服務器主要包含: (1) 設置日誌級別 (2) 初始化asio
原创 boost::asio序列: 多線程
示例代碼中,在原來boost::asio代碼基礎上,增加了打印線程id的代碼,方便理解多線程執行boost::asio::io_context::run()(或 boost::asio::io_service::run())的特點,同時