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

代碼片段和文件信息
#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;
}
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????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
評(píng)論
共有 條評(píng)論