gpt4 book ai didi

c++ - Boost asio - 同时阅读和写作

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:47:02 30 4
gpt4 key购买 nike

我正在尝试使用 boost:asio 实现双向通信。我正在编写将与多个客户端通信的服务器。

我希望在没有任何同步和顺序的情况下对客户端进行写入和读取 - 客户端可以随时向服务器发送命令,并且它仍然会循环接收一些数据。当然,必须保护对共享资源的访问。

实现此目标的最佳方法是什么?有两个线程 - 一个用于阅读,一个用于编写一个好的选择吗?接受连接并管理许多客户端怎么样?

//编辑

“无同步和顺序”我的意思是服务器应该一直向客户端传输数据,并且它可以随时响应(更改其行为)客户端请求,而不管现在发送给他们的是什么.

最佳答案

asio 背后的一个关键思想就是您不需要多个线程来处理多个客户端 session 。您的描述有点笼统,我不确定我是否理解您所说的“我希望在没有任何同步和顺序的情况下对客户端进行写入和读取”是什么意思。

一个好的起点是 asio chat server例子。请注意在本示例中,如何为每个连接的客户端创建类 chat_session 的实例。只要连接处于事件状态,该类的对象就会继续发布异步读取,同时它们可以将数据写入连接的客户端。与此同时,chat_server 类的对象不断接受新的传入客户端连接。

关于c++ - Boost asio - 同时阅读和写作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13574798/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com