原创 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())的特點,同時