[英]Boost ASIO TCP server architecture
我是 boost 和 asio 的新手(但不是网络编程),我目前正在尝试创建一个接受多个客户端的 TCP 服务器。 带有客户端的服务器的主要功能很简单:
1-读取一个固定大小的Header;
2-解释它是什么类型的请求,阅读数据包的其余部分;
3- 处理包含所有数据的请求;
4- 回到步骤 1。
这适用于基本请求,例如:检查凭据、启用 FTP 协议等...但是有一个问题:一个请求需要通过服务器与另一个连接的客户端进行通信。 但是,如果我遵循Boost 网站示例中给出的 Boost Asio 架构
或者这个会议上的那个
我实际上无法访问其他客户端套接字,它们没有库存,它们的生存归功于智能指针的行为。
对于这个问题,我确实有一个解决方案,它将连接的套接字保留在列表中,并与每个连接的套接字共享,因此每次客户端都可以访问其他客户端的套接字。 但我真的认为这不是一个好的架构,它可以更好。
有没有已知的方法来解决这个问题?
这是一个很好的方法:
这样只有服务器保留套接字。 所有客户端都使用 ID 来识别彼此。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.