st_asio_wrapper——一组包装boost.asio的c/s框架(2.3版)

时间:2015-10-26 10:18:10
【文件属性】:

文件名称:st_asio_wrapper——一组包装boost.asio的c/s框架(2.3版)

文件大小:35KB

文件格式:ZIP

更新时间:2015-10-26 10:18:10

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 2.3版更新内容: 消息(std::string包装)不再用boost::shared_ptr包装,之前有过度使用智能指针之嫌。效率上,std::string如果支持引用记数,或者编译器支持std::move语义,是没有损失的(因为也不存在内存的拷贝,反而省了智能指针使用上的开销),幸好vc支持std::move语义(虽然它不支持引用记数,linux则都支持)。这样带来一个问题,原来所有的接口中的boost::shared_ptr数据类型,全部换成了std::string引用,升级到2.3的朋友要注意修改之前重写虚函数的签名,如果不改,则重写肯定不生效,变成了新增加虚函数了(因为签名不一样)。这样向大家道歉,接口签名以后应该不会变化了,但可能增加接口; 修复使用std::advance的一个BUG,此BUG在linux下不存在,这里顺便向大家说一下,std::advance在vc和gcc下面,语义一样,但处理方式有些不同,一定要注意; 增加了个专门用于服务端压力测试的客户端框架st_test_client,并写了一个demo test_client,可以在performance_test目录下面找到; 把连接服务端逻辑从st_client剥离出来,定义了一个新的类st_connector,st_client和st_test_client将从它继承; 增加对vc2010的支持,和编译时对编译器版本的检测,如果达不到vc2010及其以上的版本,st_asio_wrapper将直接报错。


【文件预览】:
st_asio_wrapper
----asio_client()
--------asio_client.cpp(878B)
----asio_server()
--------asio_server.cpp(3KB)
----performance_test()
--------asio_client()
--------性能测试说明.txt(5KB)
--------test_client()
----file_client()
--------file_client.cpp(3KB)
--------file_client.h(5KB)
----include()
--------st_asio_wrapper_server.h(15KB)
--------st_asio_wrapper_socket.h(20KB)
--------st_asio_wrapper_test_client.h(7KB)
--------st_asio_wrapper_client.h(2KB)
--------st_asio_wrapper_unpacker.h(2KB)
--------st_asio_wrapper_connector.h(2KB)
--------st_asio_wrapper_packer.h(1KB)
--------st_asio_wrapper_timer.h(3KB)
--------st_asio_wrapper_base.h(1KB)
----file_server()
--------file_server.cpp(930B)
--------file_server.h(5KB)

网友评论