资源简介

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_base.h
     文件        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

评论

共有 条评论