本地网络运行的客户端服务器体系结构

问题描述 投票:1回答:1

我需要建议并可能对我的问题有所了解: Process1 - 在单独的线程中运行服务器并运行客户端的主进程。 Process2 - 做一些工作并将工作结果发送到服务器的客户端。

客户端沟通: 第一次发送 - 消息类型 2d发送 - 数据 3d读取 - 从服务器回答

服务器端的通信: 第一读 - 消息类型 2d读 - 数据 - 处理数据 - 将答案发送给客户

一些限制: - 该程序应该能够在本地和网络中运行。 - Process2的数量可以是6000左右 - C ++语言boost :: asio库

当前解决方案:我有异步客户端。做什么工作并运行客户端来发送结果。服务器正在接受循环中的客户端,当客户端接受时,服务器创建线程并处理通信。

有些评论!对于本地运行,Process2的一次数等于处理器核。

你觉得这个解决方案有什么好处,或者我应该采用另一种方法?

c++ networking client-server boost-asio local
1个回答
0
投票

您不需要为'Process1'中的每个客户端创建线程,您可以使用async函数(前缀为'async_')来避免阻塞,因此所有客户端都可以在一个线程中运行。

参考:https://www.boost.org/doc/libs/1_68_0/doc/html/boost_asio/example/cpp03/echo/async_tcp_echo_server.cpp

© www.soinside.com 2019 - 2024. All rights reserved.