Boost ASIO-同步写入 /读取 - 如何做
Boost asio - synchronous write / read - how to do?
首先,我想说我是Boost asio的新手,我看到了很多示例,但仍然是我不了解的事情。
我想创建一台服务器,该服务器将接受两个客户端(它将使用两个套接字)。第一个客户端将将消息发送到服务器,并且服务器将将此消息发送给其他客户端(是的,使用服务器是没有用的,但这不是这里的重点,我想了解所有这些工作是如何工作的)。这将发生在客户关闭之前。
因此,我创建了一台服务器,服务器等待客户端,然后必须等待第一个客户端发送一些消息。这是我的问题:
我该怎么办?我以为我需要阅读第一个插座,然后在第二个插座上写下,但是我怎么知道第一个客户是否写在插座上?同样,我怎么知道第二个客户是否读了第二个插座?
我不需要代码,我只想知道这样做的好方法。
非常感谢您的阅读!
执行 async_read 时,您指定了一个回调,只要将任何数据读取到缓冲区,该回调都会被调用(您还应提供缓冲区,请检查async_read的文档)。您应该分别为 async_write 提供回调,以了解何时发送数据。因此,从服务器的角度来看,对于"写入"的客户端,您应该执行Async_read,对于第二个"读取"的客户端,您应该进行异步写入。使用提供的DataFlow Client1-> Server-> Client2,很难识别服务器应从哪个客户端读取以及写入哪个客户端。由你决定。您可以选择第一个连接的客户端作为作者,而第二个则作为读者。
您可能想从ASIO iostreams开始。这是异步插座上方的高级iostream样抽象。
P.S。:另外,别忘了在某个地方运行io_service.run()循环。因为所有的ASIO回调都是在该循环中执行的。
- 理解boost::asio-async_read在无需读取内容时的行为
- #定义c-预处理器常量..我做错了什么
- 努力将整数转换为链表。不知道我在这里做错了什么
- 使用新行和不使用新行读取文件
- 读取文件并输入到矢量中
- 用c++从输入文件中读取另一行
- 读取文件的最后一行并输入到链接列表时出错
- 在进程中对同一管道进行读取和写入时C++管道出现问题
- 无法找到/读取配置文件.conf-FileIOException
- 如何使用Luacneneneba API正确读取字符串和表参数
- 为什么C++的文件 I/O 在读取文本文件时忽略初始空行?我怎样才能让它不这样做?
- Linux 在从文件中读取数据并放入矢量时比 Windows 快得多.txt.我将如何加速Windows以做同样的事情
- Boost ASIO-同步写入 /读取 - 如何做
- 我可以做一个不形式的写入文件,然后从文件中进行整体类型的格式读取
- 我想从文件中读取数据块并将其存储在矢量<string> buf 中。我做错了什么?
- 控制台程序读取文本文件行,做Levenstein并输出一个文本文件
- 读取 4 点的坐标.他们做一个正方形吗?
- c++读取文件,将每一行放入数组,对每个变量做一些操作
- 读取16位wav文件并将其归一化,如Matlab所做的
- 我哪里做错了?程序未读取"outstanding"和"unsatisfactory"变量