我需要一些提示: 我正在寫一個tcp數據庫服務器,它可以容納100個字符串(我使用了字符串向量來保存數據)。到目前爲止,我實現的基本功能是:boost :: asio tcp數據庫服務器
客戶端發送:PUT「index」「value」 - 將字符串放入向量[index]中。
客戶端發送:GET「指標」 - 矢量[索引]被髮送到客戶端
我根據我的工作升壓:: ASIO異步回聲服務器的例子 http://www.boost.org/doc/libs/1_39_0/doc/html/boost_asio/example/echo/async_tcp_echo_server.cpp
現在,我想擴展功能服務器的地址爲:
仍未解決 1.能夠在啓動時從文件加載vector的起始內容並將其保存在exit上。
解決上數據庫元素 2.將定時器:在載體[指數]串的壽命應爲30秒,如果內輸入的30秒,新數據不會到達矢量[索引]的含量應擦除。
剩下的唯一問題是在退出/開始時保存/加載矢量數據。由於vector只包含100個字符串,所以我可以簡單地使用fstream讀取/寫入,但是我在觸發保存時遇到了問題。
我的異步服務器的主要功能包含:io_service.run();在運行服務器期間如何通過按鍵觸發一個動作?我的第一個猜測是來自用戶輸入的async_read,如http://www.boost.org/doc/libs/1_51_0/doc/html/boost_asio/example/chat/posix_chat_client.cpp示例。任何其他想法?
檢查boost :: chrono - 如果您想避免ntp /夏令時/其他時鐘更改出現問題,最好不要使用掛鐘時間。 steady_clock和steady_timer會做你想做的。你可能想看看boost的序列化,以保存/加載,但可能會矯枉過正。 – sje397