首页 > TAG信息列表 > boost-asio

linux-使用ECDSA证书问题增强asio

我正在使用boost :: asio实现SSL服务器. 上下文初始化显示在下面的代码中 boost::asio::ssl::context_base::method SSL_version = static_cast<boost::asio::ssl::context_base::method>(param_values[ID_PROTOCOL_VERSION].int32_value); // load certific

c-Google :: protobuf boost :: asio失败

我研究了现有的示例: > Sending Protobuf Messages with boost::asio > Reading Protobuf objects using boost::asio::read_async> Google Protocol Buffers: parseDelimitedFrom and writeDelimitedTo for C++> Are there C++ equivalents for the Protocol Buffers del

C Linux Google Protobuf boost :: asio无法解析

我正在尝试通过TCP通过boost :: asio套接字发送Google Protobuf消息.我知道TCP是一种流协议,因此我在消息通过套接字之前对消息执行长度前缀.我的代码可以正常工作,但是即使在重复相同的调用并且不更改环境的情况下,它有时似乎也只能工作.有时我会收到以下错误: [libprotobuf ERRO

c-在Linux中调用socket.close之后,socket.read_some需要相当长的时间才能返回

我使用Boost.Asio作为简单的套接字库. 当我打开一个套接字时,我创建了一个继续读取该套接字的线程,并在该套接字关闭或发生其他错误时返回. while((read = socket->read_some(buf, ec)) != 0) { // deal with bytes read } 此代码在Windows和Mac上运行良好.但是对于linux,当

c-来自任何有效地址的ipv4和ipv6

我正在尝试从任何字符串地址获取ipv4和ipv6地址,无论是通过ipv4,ipv6还是DNS地址. 我可以创建自己的函数来执行此操作,但是我尝试使用expert advice并利用内置功能. 有没有办法输入任何格式的地址字符串,并同时返回ipv4和ipv6提升地址?解决方法:从DNS名称获取地址涉及…查询命名服务

C Boost / Asio客户端未连接到服务器

我正在学习boost / asio广告从电子书编写了2个程序(客户端和服务器),并做了一些小的更改. 基本上它应该连接到我的服务器.当我尝试连接到外部世界(某个随机的http服务器)时,一切都很好,并且可以正常工作,但是当我将目标更改为“ localhost:40002”时,它表示无效的参数. 客户代码: #i

c-使用Boost :: asio触发写入

我有一些要制作TCP客户端的软件.我不知道这是否是最好的体系结构,但是在我的软件中,我产生了一个将用于网络I / O的线程.如果有更好的架构,我将不胜感激一些建议和建议. 这两个线程都引用了boost :: asio :: io_service对象和一个封装套接字对象的Session对象. sesson对象大致如下:

c-使用boost.process同时读取和写入孩子的stdio

我正在尝试使用boost.process使用类似这样的东西来读写孩子的stdio: boost::asio::io_service writeService, readService; bp::async_pipe in{writeService}; bp::async_pipe out{readService}; bp::child process(CompressCmd.c_str(), bp::std_in < in, bp::std_out > out); Bu

c-Boost asio-分离不同的数据块

想象一下,我们创建了一个简单的客户端-服务器应用程序,以将文件从客户端发送到服务器.我们使用boost asio. 服务器开始监听.客户端连接到服务器.客户端发送文件名和文件内容. 但是服务器只接收字节流.服务器如何检测文件名结尾和文件内容开头? 我首先想到的是使用特殊的定界符.客户

c-Boost asio库最新版本中缺少方法的替代方法

几年前,我使用Boost asio库编写了一个电子邮件客户端. 有一个带有四个子类的抽象类ICON. POP3conN到平面POP3通信 POP3conS可确保POP3通信的安全 SMTPconN到平面SMTP通信 SMTPconS保护SMTP通信安全 ICON有一个会员 boost::asio::ip::tcp::socket socket_ 和两个虚拟过程,在echa子

c-是什么导致boost ::协程随机崩溃?

我有一个多线程应用程序,通过集成在boost :: asio中使用boost :: asio和boost ::协程.每个线程都有其自己的io_service对象.线程之间唯一的共享状态是连接池,当从连接池获得连接或从连接池返回连接时,连接池将被互斥锁锁定.当池中没有足够的连接时,我将无限的asio :: steady_tiemer

c-在多线程的boost asio中随机EOF

我对提升asio相当陌生,并且在多线程服务器中遇到随机文件结尾. 我可以在这个小例子中重现我的问题: 服务器: 这是一个简单的回显服务器.该协议很简单: >(1)客户端连接 >(2)服务器读取一个字节.该字节是要读取和发送回的字符串的长度.>(3)服务器读取N个字节.>(4)服务器将N 1个字节发送

c-Boost :: Asio异步写入失败

我正在将使用Boost :: Asio的应用程序移植到嵌入式系统. 我已经使用其BSP为该板交叉编译了boost 1.57.0二进制文件.为了测试库的工作,我运行了两个分别使用同步和异步写入的http服务器示例. 同步版本运行良好;而异步之一写失败.返回错误“操作已取消”. 谁能指出我应该去哪里找?谢谢.

c-ASIO ip :: tcp :: iostream和TCP_NODELAY

如果我使用ip :: tcp :: iostream,如何设置TCP_NODELAY选项?我需要一个套接字,但是我找不到如何从iostream提取它.解决方法:使用iostream::rdbuf() #include <boost/asio.hpp> int main() { boost::asio::ip::tcp::iostream stream; const boost::asio::ip::tcp::no_delay

c-无法使用no_delay进行boost :: asio吗?

我知道的… 我需要根据https://stackoverflow.com/a/25871250在connect()之前调用set_option(tcp :: no_delay(true)),否则它将无效. 此外,set_option()仅在根据https://stackoverflow.com/a/12845502事先打开套接字的情况下才起作用. 但是,async_connect()的文档指出,如果通过的套

Websockets使用asio c库作为服务器并使用javascript作为客户端

我已经使用asio库用C语言编写了服务器代码.我知道服务器代码可以正常工作,因为我是用同样用C编写并使用asio的客户端对其进行测试的. 问题在于,使用以下用于客户端的javascript代码时,连接不会被接受.我立即在javascript客户端上看到消息连接已关闭…,在服务器上,我看到以下奇怪消

c-崩溃:抛出’std :: system_error’what()实例后调用终止,避免资源死锁

我有一个简单的客户端/服务器应用程序,其代码如下所述. 请在Linux中的一个shell中运行服务器,在另一个shell中运行客户端.首先启动服务器,然后启动客户端.服务器完成工作后,会崩溃,但以下异常: 抛出’std :: system_error’实例后调用终止  what():避免资源死锁 这是从函数Service

c – boost :: asio – 窥视套接字缓冲区

我使用boost :: asio :: read(或者可能是等效的async_read)从套接字读取一些数据. 是否有可能将读取的字节留在底层套接字中,以便下次我在套接字上调用read时再次收到该数据?解决方法:像Simon说的那样,你不能用boost :: asio :: read()(或boost :: asio :: async_read())来做.但是,

c – Boost.Asio调用哪些Boost错误代码/条件?

我目前正在编写一个使用Boost.Asio作为底层套接字API的TCP I / O工具,我注意到Boost.Asio似乎缺乏关于每个单独操作可能产生特定Boost错误代码/条件的文档(例如函数/方法调用或异步操作).我能找到的所有内容都是错误代码API和一些非正式的错误代码列表,其中没有一个将特定代码与特

c – 如何使boost / asio库重复计时器?

以下是Boost库文档中给出的代码. #include <iostream> #include <boost/asio.hpp> #include <boost/date_time/posix_time/posix_time.hpp> void print(const boost::system::error_code& /*e*/) { std::cout << "Hello, world!\n"; } int ma

c – 如何使用boost asio读取固定大小的数据包?

我正在使用boost-asio进行同步读/写.数据以二进制格式出现,没有边界,长度信息以包格式编码.所以用指定的大小读入是很重要的. ip :: tcp :: iostream能做到吗?有人能提供一个例子吗?谢谢.解决方法:我处理一个程序,它发送不同大小的不同数据.我使用8字节的固定标头来编码大小,然后,我

C Boost.ASIO:使用Windows API将接受的TCP连接从一个打开的套接字传递到另一个套接字(同时使用Linux API)?

我试图学习如何使用Boost.ASIO和Windows API重新分配接受的连接.发现this code sample添加到它包括和使用命名空间所以现在它是可编辑的 – 只需复制和粘贴,在这里你去……“参数不正确”异常在同一个地方代码海报有它=(所以这里是代码: #include <iostream> #include <boost/asio.

c – boost :: thread数据结构大小在荒谬的一面?

编译器:linux上的clang x86-64. 已经有一段时间了,因为我编写了任何复杂的低级系统代码,并且我对系统原语(windows和pthreads / posix)进行了编程.所以,#s和out的内容已经从我的记忆中消失了.我目前正在使用boost :: asio和boost :: thread. 为了模拟异步函数执行器的同步RPC(具有多

c – boost :: asio中async_read()中的EOF

当async_read_some()返回EOF异常时,它意味着服务器停止发送数据,或者是否意味着连接已关闭.我有这种困惑,因为我无法找到一种方法来了解客户端是否已从服务器接收到所有数据.解决方法:它表示连接已关闭.虽然记录了elswhere,但它仍然适用: An error code of boost::asio::error::eo

c – Boost asio,单个TCP服务器,许多客户端

我正在创建一个TCP服务器,它将使用boost asio,它将接受来自许多客户端的连接,接收数据和发送确认.问题是我希望能够接受所有客户,但我希望一次只能使用一个.我希望所有其他事务都保存在队列中. 例: > Client1连接 > Client2连接> Client1发送数据并要求回复> Client2发送数据并要求