asio

Monster Audio 使用教程(一)基本注意事项 和 音轨的基本设置

て烟熏妆下的殇ゞ 提交于 2020-05-04 04:47:31
Monster Audio支持的操作系统: windows 7 64bit 至 windows 10 64bit 受支持的VST: Vst 64bit、Vst3 64bit 受支持的声卡驱动: ASIO Monster Audio下载地址: http://www.jacktan.cn 注意事项: 安装后,请右键点击windows右下角的小喇叭图标, 看看默认的播放设备和默认的录音设备是否改变,如果改变,请设置为您的常用设备。 小喇叭的自动灭灯 :在调音台界面,如果多个音轨,它们的输入信号设置为 相同的通道 ,那么,点亮其中一个音轨的小喇叭(监听按钮),其他音轨的小喇叭会自动灭掉。除非,你按着键盘的Ctrl 键,再点亮小喇叭,这样不会灭掉其他同信号的音轨。这个功能,是给主播用的。比如可以创建多个音轨,输入信号都是同一个麦克风,但是每个音轨设置的效果不一样,有个音轨用来唱歌,有个音轨用来喊麦,因为应用的场景不一样,所以不想这些音轨同时工作,有了这个功能,只要点亮其中一个音轨就好,其他音轨会自动灭灯,不会起作用了。 还有,如果把一个音轨设置为【接收类型的音轨】,它也不会自动灭灯。 关于虚拟通道: Monster Audio 为了可以对windows内产生的声音做处理(此功能也被称为内录),安装时,会安装一个虚拟声卡,此声卡包含两个播放设备Monster Play、Monster

用lambda函数改写std::asio的例子程序

北城以北 提交于 2020-04-30 16:45:21
#include "stdafx.h" #define ASIO_STANDALONE #include <iostream> #include <asio.hpp> void do_callback(asio::steady_timer& timer, int& count) {   timer.async_wait(     [&](const asio::error_code& ec){       if (count < 5){         std::cout << count << std::endl;         ++(count);         timer.expires_at(timer.expiry() + asio::chrono::seconds(1));         do_callback(timer, count);       }else{         std::cout << "Final count is " << count << std::endl;       }     }   ); } class Callback { public:   Callback(asio::io_context& io)     : timer_(io, asio::chrono::seconds(1)),     count_(0)   {

asio::error::eof(2)错误

只愿长相守 提交于 2020-04-30 13:53:17
当socket读写完成调用回调函数时候一定要检查 是不是有EOF错误,如果有那么好了,另一方已经断开连接了别无选择,你也断开把。 来源: oschina 链接: https://my.oschina.net/u/4271739/blog/4259175

使用websocketpp进行websocket通信

孤人 提交于 2020-04-27 18:08:24
##websocketpp介绍 websocketpp是一个只有头文件的支持websocket协议的C++开源库,支持websocket客户端和服务器功能,网络传输模块基于boost::asio 提供 server 功能的 websocketpp::server 和提供 client 功能的 websocketpp:client 都继承自基类 websocketpp::endpoint , endpoint提供了一些通用的功能函数: void set_access_channels(log::level channels);//设置日志级别 void clear_access_channels(log::level channels)//屏蔽某个级别的日志 void set_open_handler(open_handler h);//设置打开连接时的回调函数 void set_close_handler(close_handler h);//设置关闭连接时的回调函数 void set_fail_handler(fail_handler h);//设置连接失败时的回调函数 void set_message_handler(message_handler h);//设置收到消息时的回调函数 ##服务器代码 #include <websocketpp/config/asio_no

C++ websocket服务器与客户端库websocketpp

心已入冬 提交于 2020-04-27 17:12:33
websocketpp https://github.com/zaphoyd/websocketpp https://docs.websocketpp.org/getting_started.html 仓库包含如下几个目录: docs : 文档 examples : 示例程序演示如何为WebSocket客户端和服务器构建一些常用模式的基本版本。 test : 单元测试确认您的代码正常工作,并帮助检测平台特定的问题。 tutorials : 一组示例程序的详细演练。 websocketpp : 所有库代码和默认配置文件。 WebSocket ++是仅包含头文件 的库。 您可以通过在项目的包含路径中包含 websocketpp源目录,并在程序中包含适当的WebSocket++头文件 ,来开始使用它。 您可能还需要包含和 /或链接到适当的Boost/系统库。 在 examples 下有 echo_server 和 echo_client ,一般作为入门的例子。 下面在 Windows 上来运行这个例子。 首先,下载 boost : https://www.boost.org/users/download/ 接下来编译 boost: 打开命令行,运行 bootstrap.bat 接下来运行 b2.exe 不出意外的话,就编好了(我这里都是默认配置来编译的,使用的是 VS2019)

Peek asio https ssl stream without deleting from input stream

拈花ヽ惹草 提交于 2020-04-17 18:58:34
问题 I am using asio standalone and an HTTPS wrapper from Eidheim (Eidheims SimpleHttpsServer) to set up an HTTPS server on Windows with asynchronous rerquest handling and a thread pool. Occassionally the HTTPS server gets raw socket queries though, because I want to replace an older socket server and if the client app is not up to date, they wont send HTTP(s) formatted queries. For HTTP this was no problem, because I could change the Read (from socket) method to use the legacy code for request

How to avoid firing already destroyed boost::asio::deadline_timer

瘦欲@ 提交于 2020-04-13 17:16:12
问题 I'm using multiple boost::asio::deadline_timer on one io_service object. std::shared_ptr of boost::asio::deadline_timer are stored in the container std::map<int, std::shared_ptr<debug_tim>> timers with index. In the timer handler, I erase other boost::asio::deadline_timer . However, it seems that the erased timer woule be often fired with success error code. Is there any way to avoid that. I expect that the timer handler that corresponding to the erased boost::asio::deadline_timer always

websocket++序列: Handler

雨燕双飞 提交于 2020-04-13 17:05:07
【今日推荐】:为什么一到面试就懵逼!>>> 1. Connection Handlers: 同连接相关的Handler Event Signature Version Socket Initial: 套接字初始化 socket_init(connection_hdl, asio::ip::tcp::socket&) >0.3.0 Asio Transport TCP established, no data sent: TCP创建,非数据传输 tcp_pre_init(connection_hdl) >0.3.0 Asio Transport Request for TLS context: 请求TLS Context tls_context_ptr tls_init(connection_hdl) >0.3.0 Asio Transport With TLS Hook to accept or reject a connection: 接受或拒接连接 bool validate(connection_hdl) >0.3.0 Core, Server Role only Successful new connection( opening ):连接打开 open(connection_hdl) >0.3.0 Core Connection failed ( before

websocket++序列: Client

倖福魔咒の 提交于 2020-04-13 17:01:57
【今日推荐】:为什么一到面试就懵逼!>>> 关于websocketpp 示例注释( https://docs.websocketpp.org/md_tutorials_utility_client_utility_client.html ), 实际上是熟悉endpoint和connection,并且,两者之间关系: endpoint中关于connection相关配置在创建时拷贝道connection中,如果endpoint配置进行更新时,并不影响已经创建的connection,同时,endpoint和connection并不存在对应关系,endpoint只是负责创建和相关的配置,但是,connection负责实际的的消息交互,如示例中所示: // 不包含TLS Client #include <websocketpp/config/asio_no_tls_client.hpp> #include <websocketpp/client.hpp> // 包含TLS Client // #include <websocketpp/config/asio_client.hpp> // #include <websocketpp/client.hpp> #include <websocketpp/common/thread.hpp> #include <websocketpp/common

websocket++序列: Server

送分小仙女□ 提交于 2020-04-13 17:01:20
【今日推荐】:为什么一到面试就懵逼!>>> websocket服务器主要包含: (1) 设置日志级别 (2) 初始化asio (3) 设置默认Handler (4) 进行监听listen() 和 接收连接 start_accept() (5) 调用run() // The ASIO_STANDALONE define is necessary to use the standalone version of Asio. // Remove if you are using Boost Asio. // #define ASIO_STANDALONE // 不使用TLS #include <websocketpp/config/asio_no_tls.hpp> #include <websocketpp/server.hpp> // 使用TLS // #include <websocketpp/config/asio.hpp> // #include <websocketpp/server.hpp> #include <functional> typedef websocketpp::server<websocketpp::config::asio> server; class utility_server { public: utility_server() { // 设置日志级别