草庐IT

asio_handler_invoke

全部标签

c++ - 是否有用于 Boost::asio 的 Web 框架?

用C++做web开发听起来有点奇怪,但是随着node.js的流行,我认为C++做web的东西是合理的。node.js类似于Boost::asio,它们都是异步的并且具有高性能。我认为C++拥有自己的基于Boost::asio的Web框架是很自然的。那么是否有针对Boost::asio的Web框架,如Express、Geddy?为什么不呢? 最佳答案 有pion,这是一个用C++编写的基于boost::asio的HTTP服务器。您可以将其用作C++Web框架的起点。 关于c++-是否有用于

c++ - Boost Asio 回调不会被调用

我正在使用Boost.Asio进行网络操作,它们必须(实际上,可以,没有复杂的数据结构或任何东西)保持相当低的水平,因为我负担不起序列化开销(和库)我发现确实提供了足够好的性能似乎不适合我的情况)。问题出在我从客户端执行的异步写入(在QT中,但这可能与此处无关)。async_write中指定的回调永远不会被调用,我完全不知道为什么。代码是:voidSpikingMatrixClient::addMatrix(){std::coutui->editNetworkSize->text().toInt();std::ostreamout(&buf);out.write(reinterpret

c++ - 使用 Boost Asio 的快速数据(图像)传输服务器客户端

我是网络编程的新手,对使用BoostAsio在客户端和服务器之间连续快速传输数据(图像)的最佳实践有一些疑问。重要的一点,我们不能应用会降低图像质量的压缩。我们使用专用网络(54MBit),除我们之外没有其他流量。我们被推荐使用BoostAsio,因为它似乎适合我们的需要。然而,由于Boost非常强大,它对像我这样没有经验的(Boost)开发人员来说是一个挑战。我们想开发一种尽可能简单的工具,它可以在客户端和服务器之间尽可能快地连续发送图像数据。基本上它是流媒体。我们更愿意使用TCP,但如果我们可以使用UDP获得显着的性能提升,我们不会介意偶尔丢失数据包。数据是一个无符号字符缓冲区(6

c++ - boost::asio UDP "gather"操作

async_receive()的boost::asio文档声明它支持“一次接收到多个缓冲区”,虽然我可以编写代码,但实际上看不到它是如何(或是否)工作的。我们遇到这样一种情况,我们的一家供应商每秒向我们发送数千个UDP数据包,这足以让我们在某些情况下看到“接收到的数据包被丢弃”数量激增。如果我们真的可以在一次async_receive()调用中填充多个缓冲区,那将是理想的,但在测试过程中,似乎即使指定了多个缓冲区,也只会为一个数据报调用处理程序。我已经包含了我的测试代码,抱歉它太冗长了,但我需要它能够灵活地监听多个接口(interface)/多播。#include#include#in

c++ - 为什么这个 ASIO 示例使用成员变量来传递状态而不是使用绑定(bind)?

在ASIOHTTPServer3example有这样的代码:voidserver::start_accept(){new_connection_.reset(newconnection(io_service_,request_handler_));acceptor_.async_accept(new_connection_->socket(),boost::bind(&server::handle_accept,this,boost::asio::placeholders::error));}voidserver::handle_accept(constboost::system::e

c++ - boost ASIO,SSL : How do strands help the implementation?

TLDR:Strands序列化跨完成处理程序共享的资源:这如何防止ssl::stream实现并发访问SSL上下文(内部使用)以用于并发读/写请求(stream::ssl不是全双工的)?请记住,strands仅序列化完成处理程序调用或读/写请求的原始队列。[感谢sehe帮助我更好地表达这一点]我花了一天的大部分时间阅读有关ASIO、SSL和strands的内容;主要是关于stackoverflow(其中有一些非常详细且表达明确的解释,例如WhydoIneedstrandperconnectionwhenusingboost::asio?)和Boost文档;但有一点仍不清楚。显然,stra

c++ - Thrift - 每个套接字都有不同的 Handler 实例

我正在Thrift中开发“代理”服务器。我的问题是,每个连接到代理的连接都使用相同的处理程序实例。代理的客户端实现在Handler中,因此所有客户端都通过相同的连接与终端服务器进行通信。我有:n个客户端->n个套接字->1个处理程序->1个套接字->1个服务器我想要实现的是:n个客户端->n个套接字->n个处理程序->n个套接字->1个服务器现在的问题是,如果客户端更改服务器上的“本地”参数(为每个客户端独立定义的参数),其他客户端也将在更改后的环境中工作。shared_ptrhandler(newCassProxyHandler(adr_s,port_s,keyspace));sha

c++ - 使用 Boost Asio 接受 IPv6 链接范围地址

我有一个使用BoostASIO的TCP服务器。我注意到,在Linux上使用链接作用域的IPv6地址时,我无法在不引发异常的情况下创建boost::asio::ip::tcp::acceptor。使用全局IPv6地址或IPv4地址都可以正常工作。我很确定问题出在范围ID设置不正确,但我不知道如何解决这个问题。我正在使用ubuntu提供的boost1.40.0库在Ubuntu11.04LTS上进行开发。这是我的服务器代码的一个非常简单的版本,它显示了问题:#include#include#include#include#include/*ToCompile:g++-Wall-o./asio

c++ - boost asio : "host not found (authorative)"

我正在为学校制作一个程序,其中两个程序相互通信。到目前为止,我还无法连接这两个程序。每当我尝试连接到localhost:8888或127.0.0.1:8888时,都会出现错误“找不到主机(权威)”。到目前为止我的代码是这样的:连接.cppConnection::Connection(std::stringArg){try{tcp::resolverresolver(io_service);coutbuf;boost::system::error_codeerror;size_tlen=socket_p->read_some(boost::asio::buffer(buf),error)

c++ - boost asio tcp 发送和接收教程

我正在寻找使用tcpboostasio创建可以发送和接收字符串消息的服务器的好教程或示例。Thisexample似乎是一个很好的起点,但没有文档,这让我迷路了。还有其他更好的例子吗?或者有人可以向我解释示例中发生了什么吗? 最佳答案 你应该检查这个:TheBoostC++Libraries/Chapter7:AsynchronousInputandOutput 关于c++-boostasiotcp发送和接收教程,我们在StackOverflow上找到一个类似的问题: