社区
游戏开发
帖子详情
有用boost开发服务器的么?
mengxihe
2013-02-09 09:26:30
有用boost开发服务器的么?
...全文
252
2
打赏
收藏
有用boost开发服务器的么?
有用boost开发服务器的么?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zyyoung
2013-03-10
打赏
举报
回复
boost::asio + mongodb 有一套,在centos下
神的理想
2013-02-22
打赏
举报
回复
asio ?
st_asio_wrapper一组
boost
.asio包装类(2.1版)
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版更新内容: 服务端增加对象池功能; 优化美化代码; 更规范化接口签名。 2.1版更新内容: 修复BUG,此BUG会造成st_client在stop_service之后,仍然可能尝试重新连接
服务器
; 在消息发送的时候,增加了一个参数can_overflow,用于确定是否在缓存满的时候返回失败,这在某些不能阻塞等待直到缓存可用的场合非常
有用
,比如on_msg; 当消息接收缓存满的时候,st_socket现在可以保证消息不丢失,之前的行为是调用on_recv_buffer_oveflow之后,丢弃消息; 更规范化接口签名; 更多更新请看st_asio_wrapper_socket.h,所有更新都会罗列在这个头文件的开头处,另外st_asio_wrapper_server.h的开头部分注释也很重要,有工作原理相关的说明。
st_asio_wrapper——一组包装
boost
.asio的c/s框架(2.2版)
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版更新内容: 服务端增加对象池功能; 优化美化代码; 更规范化接口签名。 2.1版更新内容: 修复BUG,此BUG会造成st_client在stop_service之后,仍然可能尝试重新连接
服务器
; 在消息发送的时候,增加了一个参数can_overflow,用于确定是否在缓存满的时候返回失败,这在某些不能阻塞等待直到缓存可用的场合非常
有用
,比如on_msg; 当消息接收缓存满的时候,st_socket现在可以保证消息不丢失,之前的行为是调用on_recv_buffer_oveflow之后,丢弃消息; 更规范化接口签名; 更多更新请看st_asio_wrapper_socket.h,所有更新都会罗列在这个头文件的开头处,另外st_asio_wrapper_server.h的开头部分注释也很重要,有工作原理相关的说明。 2.2版更新内容: 增加了一个demo——文件传输服务端及客户端,它几乎可以当成软件来使用,多线程且支持分块传送; 增加了timer功能,考虑到st_server已经用上了timer,加之做文件传输
服务器
的时候,也用到了timer,所以干脆把timer抽象出来,其设计原理及使用跟MFC的timer差不多。timer已经被st_socket和st_server继承。用的时候,调用set_timer开始timer,重写on_timer虚函数等待被调用即可; 进一步优化消息接收缓存,通过宏,让优化发生于编译阶段,参看FORCE_TO_USE_MSG_RECV_BUFFER宏以了解更多。demo里面有使用案例(asio_server,asio_client,file_server,file_client,performance/asio_client); 增加了所有的宏都可以在外面修改的功能,在include类库头文件之前,可以定义你想要的宏,st_asio_wrapper不会修改它们,除非它们没有被定义,此时使用默认值,这也是st_asio_wrapper之前设计不好的地方,具体请参看使用教程。
Socket编程系列之5:
Boost
开发
及ASIO异步网络聊天室编程实
Socket编程系列初步计划:Socket编程系列之1:Linux-API网络编程入门实战Socket编程系列之2:Windows-API网络编程入门实战Socket编程系列之3:Libevent网络编程入门实战Socket编程系列之4:Libcurl网络编程入门实战Socket编程系列之5:
Boost
-ASIO网络编程入门实战Socket编程系列之6:Libuv网络编程入门实战----------------------------------------------------Socket编程系列之5:
Boost
开发
及ASIO异步网络聊天室编程实战我将大龄大家从
Boost
小白入门基础知识开始,然后搭建
开发
环境,并亲手编译源码。然后详细分析
Boost
智能指针及内存池管理、线程、同步、多线程、线程池、IPC等知识,并动手练习。然后学习并分析总结高级函数特性,包括
Boost
.Function/Bind/Lambda等编程技术。最后进行
Boost
.ASIO入门的网络编程知识,包括同步编程、异步编程、UDP、异步网络聊天室等,并动手实践。
mds-utils:适用于C ++和Python
开发
人员的通用实用程序-开源
该库旨在成为几个C ++实用程序的集合。 目前,它包含:1.一种用于检测机器字节序的工具。 2.
Boost
uBLAS库的实用程序。 其中,一些类型特征可用于检测不同的uBLAS矩阵类型。 3.一些
有用
的类,这些类允许将旧的C FILE指针视为C ++流。 4.主要Python对象的C ++包装器,独立于
Boost
Python中的对象。 还为NumPy阵列提供了包装器。 5. C ++类,有助于将Python文件对象视为C ++流。 6.审查和重构Python扩展中的索引支持。 现在也支持以写模式进行访问。 有关Doxygen文档的更多详细信息。 可通过doxygen获得文档。 下载并解压缩后,从根文件夹发出“ doxygen”命令。 该文档将放入“ doc / html”中。 可从下面的链接(mds-utils网站)获得此文档的在线版本。
Boost
实现简易
服务器
和客户端示例
Boost
实现简易
服务器
和客户端示例
游戏开发
8,302
社区成员
23,681
社区内容
发帖
与我相关
我的任务
游戏开发
游戏开发相关内容讨论专区
复制链接
扫一扫
分享
社区描述
游戏开发相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章