精彩课程推荐

[下载/更新] yasio】轻量级跨平台底层客户端网络解决方案v3.33.0正式发布

[复制链接]
查看: 391|回复: 0
发表于 2020-5-26 14:47:52 | 显示全部楼层 |阅读模式
yasio-3.33.0正式发布:

  - 重构UDP  Transport,和TCP一样使用发送队列,UDP客户端默认不使用connect绑定四元组,同时提供选项YOPT_T_CONNECT和YOPT_T_DISCONNECT来修改绑定行为
  - 增加io_service::write_to接口用户发送到指定地址,可作用于已绑定或未绑定的UDP Transport
  - 移除信道掩码 : YCM_MCAST_CLIENT, YCM_MCAST_SERVER
  - 移除信道标记: YCF_MCAST_LOOPBACK
  - 添加选项: YOPT_C_ENABLE_MCAST, YOPT_C_DISABLE_MCAST用于组播支持
  - 修改定时器回调原型为 ```[]()->bool {}```,用户可以返回false来通知service继续调度定时器
  - 添加highp_timer::async_wait_once接口来注册一次性定时器回调
  - 修改 YCM_XXX_[CLIENT/SERVER]为YCK_XXX_[CLIENT/SERVER]以明确io_service:pen时传递的应该是channle类型,而非掩码
  - 增加API: yasio::xhighp_clock获取纳秒级时间戳
  - 修复xxsocket API send_n和recv_n未处理EINTR信号问题
  - 调整obstream/obstream API, 默认write_v/read_v使用7Bit Encoded Int编码字符串的长度域
  - 重命名io_service的start_service/stop_service为start/stop
  - 修复开启c-ares非阻塞域名解析支持时超时行为
  - 增强c-ares清理机制
  - 增强cxx17::string_view兼容性,可用于c++11的unordered_map/unordered_set容器
  - 使用shared_ptr + shared_mutex来增强io_service在未开启c-ares情况下的析构行为的稳定性
  - 修复DNS缓存机制无效问题
  - 简化启用c-ares时dns服务器列表初始化,在android平台静态链接只需要在JNI_OnLoad调用yasio__jni_onload, 动态链接则无需任何操作
  - 修复yasio::_strfmt字符串格式化在某些低版本编译器,某些特殊字符输出情况下可能crash的问题
  - 增强io_service内部当检测到发送缓冲区已满时驱动行为,不再固定sleep,而是注册可写事件由select驱动
  - 优化UDP Transport内部对错误的关闭行为,默认不会因为发送错误而关闭Transport,而是由用户在发送回调中根据错误码自行决定是否关闭Transport.
  - 修改发送完成回调原型为 std::function<void(int ec, size_t bytes_transferred)>
  - 实现cxx17::string_view在c++11标准编译器下的字符串字面值操作符重载, 例如 "abcd"_sv;
  - 修复访问某些https服务器SSL握手失败问题
  - 修复在只支持c++11标准编译器下,使用kaguya lua绑定库,导致io_service对象不随着lua gc析构问题
  - 增加io_service::init_globals(const print_fn_t&)接口来支持重定向初始化日志到自定义文件(例如U3D和UE4游戏引擎的编辑器日志输出窗口)
  - 增强编译器支持,c++14,17,20均可通过编译
  - 优化Lua绑定库自动选择的最低标准,编译器支持c++14或以上,均选择 sol2 作为lua 绑定库
  - 在发送中断器socket_select_interrupter发生错误时,重建之
  - 更新kcp到v1.7版本,先前版本在ARM处理器下可能发生SIGBUS崩溃
  - 简化io_service API, 去除reopen, 使用open替代,open自带重连或重新打开信道行为
  - 修复当af=0时yasio::inet::ip::endpoint::ip崩溃问题
  - 修改io_service::write kcp的返回值,保持和其他类型Transport一致
  - 修复KCP server不解码KCP协议包问题
  - 增加xxsocket::disconnect以支持解除UDP socket和远端的4元组绑定关系
  - 重命名io_service选项 YOPT_I_SOCKOPT 为 YOPT_B_SOCKOPT
  - 其他代码质量和稳定性优化


73

主题

87

帖子

692

积分

版主

Rank: 7Rank: 7Rank: 7

UID
411
威望
-3
贡献
0
铜币
551
T币
0
主题
73
帖子
87
在线时间: 43 小时
注册时间: 2017-5-20
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

商务合作

QQ群:515753718
点击这里给我发消息

扫一扫/点击加群

Copyright;  ©2015-2099  天黑互娱  Powered by游戏开发者社区  技术支持 闭眼就天黑    

皖公网安备 34132102000135号

  ( 皖ICP备14007736号-2 )