有了客戶端的掃雷,建立服務端還是比較順暢的,直接將客戶端需要include的標頭檔案加進來,額外新增乙個#include 標頭檔案(注:#include 檔案未包含在#include 中.)由於asio服務端需要在乙個執行緒中啟動非同步操作,即乙個死迴圈等待socket事件,因此需要建立乙個執行緒,這裡使用qt的執行緒支援即可.建立qthread的子類,重寫其run()虛函式,在裡面呼叫io_service::run();在將asio自帶的tcp非同步echo服務**全部移植過來,測試通過.
標頭檔案,其中宣告了執行緒類及從控制台範例中移植過來的類
#ifndef asiotcpserverthread
#define asiotcpserverthread
//asio
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
//qt
#include
using boost::asio::ip::tcp;
class asiotcpserverthread : public qthread
;class session
;char data_[max_length];
};class server
;const int port = 10800;
#endif
執行緒類及移植類的實現
#include "asiotcpserverthread.h"
asiotcpserverthread::asiotcpserverthread()
asiotcpserverthread::~asiotcpserverthread()
void asiotcpserverthread::run()
catch(std::exception& e)
}session::session(boost::asio::io_service& io_service) : socket_(io_service)
void session::start()
void session::handle_read(const boost::system::error_code& error, size_t bytes_transferred)
else
}void session::handle_write(const boost::system::error_code &error)
else
}server::server(boost::asio::io_service &io_service, short port)
: io_service_(io_service), acceptor_(io_service, tcp::endpoint(tcp::v4(), port))
void server::start_accept()
void server::handle_accept(session *new_session, const boost::system::error_code &error)
else
start_accept();
}//介面標頭檔案
VS2003 VS2005 VS2008相容性經歷
為了與microsoft同步,逐步追隨他安裝了vs2003 vs2005,其實vs2005真的夠用了 但是還是經不起誘惑,看了大家的評價和試用,有了安裝vs2008的想法 安裝過程一切順利,也沒有影響vs2005的工作 可就在今天,由於工作需要,要把兩年前用vs2003寫的圖文管理系統 b s 重新...
VS2008 ,TFS2008破解序列號
將試用版 90天 變成永久正式版的方法 一 先安裝試用版,然後在 新增或刪除程式 裡找到vs2008,點 更改 刪除 就會看到乙個輸入序列號的地方,把序列號輸進去,點 公升級 按鈕即可,team suite和professional通用。以下是收集的序列號 1.visual studio 2008 ...
VS2008常用快捷
命令列 devenv 啟動vs studion isqlw 啟動sql2000查詢分析器 sqlwb 啟動sql2005企業管理器 inetmgr 啟動iis管理器 除錯快捷鍵 f5 啟動除錯 估計是最常用的了 f9 新增斷點 f10 逐過程 f11 逐語句 ctrl f5 開始執行 不除錯 shi...