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

时间:2018-08-23 14:23:41

标签: c++ networking client-server boost-asio local

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


客户端通信:
第一次发送-消息类型
2D发送-数据
3d读取-来自服务器的答案


来自服务器端的通信:
第一次阅读-消息类型
二维读取-数据
 -处理数据
 -将答案发送给客户


一些约束
 -该程序应能够在本地和网络中运行。
 -Process2的数量大约为6000
 -C ++语言boost :: asio库

当前解决方案: 我有异步客户端。哪个执行作业并运行客户端以发送结果。 服务器正在循环中接受客户端,当客户端接受后,服务器将创建线程并处理通信。

一些说明!对于本地运行,一次Process2的数量等于处理器内核。

您认为此解决方案有什么好处,或者我应该使用另一种方法?

1 个答案:

答案 0 :(得分: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