-
大小: 16KB文件類型: .zip金幣: 2下載: 0 次發布日期: 2024-01-05
- 語言: 其他
- 標簽: boost??asio??boost.asio??asio_wrapper??
資源簡介
st_asio_wrapper是一組類,功能是對boost.asio的包裝(調試環境:boost-1.51.0),目的是簡化boost.asio開發;
其特點是效率高、跨平臺、完全異步,當然這是從boost.asio繼承而來;
自動重連,數據透明傳輸,自動解決分包粘包問題(你可以像udp一樣使用它);
注:只支持tcp協議;
教程:http://blog.csdn.net/yang79tao/article/details/7724514
1.1版更新內容:
增加了自定義數據模式的支持,可用于st_asio_wrapper server與其它客戶端的通信、或者st_asio_wrapper client與其它服務端的通信;當然,兩端都是st_asio_wrapper的話,就用透明傳輸即可(1.0版已經支持了)。
1.2版更新內容:
修復BUG:當stop_service之后,再start_service時,client_base內部某些成員變量可能沒有得到復位;
服務端增加修改監聽地址功能,當然仍然要在start_service之前調用set_server_addr函數。
1.3版更新內容:
增加自定義消息格式的發送,這個本來是在1.1版本實現的,結果我漏掉了,只實現了自定義消息格式的接收。
1.4版更新內容:
將打包與解包器從client_base分離出來,以簡化這個日益復雜的基類;
可以在運行時修改打包解包器。
1.5版更新內容:
增加ipv6支持,默認是ipv4,服務端和客戶端都通過設置一個ipv6的地址來開啟這個功能;
增加了一些服務端helper函數,小改了一下客戶端set_server_addr函數簽名(調換了兩個參數的位置以保持和服務端一樣)。
1.6版更新內容:
增加了接收消息緩存(改動較大,on_msg的語義有所變化,請看開發教程第三篇)。
1.7版更新內容:
修復vc2010下編譯錯誤;
修復默認解包器BUG(同時修改解包器接口);
修復log輸出BUG;
更好的包裝了服務端類庫,現在服務端可以像客戶端一樣簡單的使用了(完全不用繼承或者重寫虛函數,申請一個對象即可);
結構大調整,類名大調整,請參看開發教程第一篇。
1.8版更新內容:
增加健壯性和穩定性;
退出服務更新優雅。
1.9版更新內容:
提高代碼通用性;
可以指定服務端同時投遞多少個async_accept;
修復BUG,此BUG可能造成數據發送不完全。
2.0版更新內容:
服務端增加對象池功能;
優化美化代碼;
更規范化接口簽名。

代碼片段和文件信息
#include?“../include/st_asio_wrapper_client.h“
using?namespace?st_asio_wrapper;
#define?QUIT_COMMAND “quit“
int?main()?{
std::string?str;
st_client?clients[2];
//there?is?no?corresponding?echo?client?demo?as?server?endpoint
//because?echo?server?with?echo?client?made?dead?loop?and?occupy?almost?all?the?network?resource
for?(auto?i?=?0;?i?2;?++i)
{
// clients[i].set_server_addr(5050?“::1“);?//test?ipv6
if?(i?>?0)
puts(“again.“);
clients[i].start_service();
while(clients[i].is_running())
{
std::cin?>>?str;
if?(str?==?QUIT_COMMAND)
clients[i].stop_service();
else
clients[i].send_msg(str);
}
}
return?0;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2012-07-15?00:49??st_asio_wrapper\
?????目錄???????????0??2012-09-02?17:20??st_asio_wrapper\asio_client\
?????文件?????????658??2012-08-14?21:22??st_asio_wrapper\asio_client\asio_client.cpp
?????目錄???????????0??2012-09-02?17:20??st_asio_wrapper\asio_server\
?????文件?????????825??2012-08-14?21:21??st_asio_wrapper\asio_server\asio_server.cpp
?????文件????????1106??2012-08-31?17:55??st_asio_wrapper\asio_server\echo_server.h
?????目錄???????????0??2012-09-01?22:11??st_asio_wrapper\include\
?????文件????????1181??2012-08-23?21:12??st_asio_wrapper\include\st_asio_wrapper_ba
?????文件????????3997??2012-08-31?15:47??st_asio_wrapper\include\st_asio_wrapper_client.h
?????文件????????1514??2012-08-31?15:47??st_asio_wrapper\include\st_asio_wrapper_packer.h
?????文件???????14726??2012-09-01?22:11??st_asio_wrapper\include\st_asio_wrapper_server.h
?????文件???????15101??2012-09-01?15:43??st_asio_wrapper\include\st_asio_wrapper_socket.h
?????文件????????2535??2012-08-31?15:46??st_asio_wrapper\include\st_asio_wrapper_unpacker.h
評論
共有 條評論