發布一套IOCP框架

2021-09-30 04:50:45 字數 1404 閱讀 2421

目前,所提供的原始碼提供了socket和file的非同步操作,可以非常方便的擴充套件為支援其他的操作。

編譯環境需求:

vs2008+sp1以上(支援c++ tr1元件即可)。

大致的層次圖如下:

類圖如下:

這裡,給出的原始碼和簡單的示例(請以所提供的demo程式為準)

#ifndef __service_hpp#define __service_hpp#include #include "../../include/network/socket.hpp"using namespace async::network;class session : public std::tr1::enable_shared_from_this ~session() socketptr& getsocket() void start() catch(std::exception &e) } void stop() private: void _handleread(const asyncresultptr &asyncresult) data_->resize(bytes); socket_->beginsend(data_, 0, data_->size(), std::tr1::bind(&session::_handlewrite, shared_from_this(), std::tr1::placeholders::_1)); } catch(const std::exception &e) } void _handlewrite(const asyncresultptr &asyncresult) void _disconnect(const asyncresultptr &asyncresult) };typedef std::tr1::shared_ptrsessionptr;class server ~server() public: void start() void stop() private: void _startaccept() catch(const std::exception &e) } void _stopserver() private: void _onaccept(const asyncresultptr &asyncresult) catch(const std::exception &e) }};#endif

int main(int argc, char* ar**) catch(std::exception &e) system("pause"); return 0;}

一套mysql mysql 命令一套

mysql mysql h主機位址 u使用者名稱 p使用者密碼 首先開啟dos視窗,然後進入目錄mysqlin,再鍵入命令mysql u root p,回車後提示你輸密碼.注意使用者名稱前可以有空格也可以沒有空格,但是密碼前必須沒有空格,否則讓你重新輸入密碼.如果剛安裝好mysql,超級使用者roo...

實現一套灰度發布系統需要考慮哪些問題?

仔細考慮一下灰度發布系統要達到哪些目的,基本就能有答案了。需要注意的是,客戶端應用 無論pc端還是移動端 的灰度發布要比web應用的灰度發布更為複雜,因為應用執行在使用者持有的終端上,資料採集和回滾都更為困難 但可採集的資料型別要更加豐富。注 本人缺乏移動客戶端產品的經驗,下述內容可能不適用於移動客...

實現一套灰度發布系統需要考慮哪些問題?

要了解乙個灰度發布系統的功能,個人覺得有必要先了解灰度發布的概念定義和灰度發布流程,從概念和流程中明確灰度的目的並梳理出流程中系統工具可以支撐的地方,那麼實現一套發布系統需要考慮的地方也就清楚了。灰度發布的目的首先是為了應用從老版本公升級到新版本的時候能做到平滑公升級,公升級過程中通常會先按照一定發...