关于如何在维护 KISS 的同时使用 IO 类型的架构实际包含大量连接,我一直在脑海中传递一些想法。通过网络上的示例,似乎大多数使用带有 CONTAINING_RECORD 的双/单链表。而且,作为 IO 服务器的新手(尽管每天都在改进),我也将链表容器用于 IO 架构。
我的问题是,为什么我不能只构建一个大数组并使用 CONTAINING_RECORD,而不是为我的连接使用单/双链表?我可以使用 STL 向量吗?那行得通吗?此外,还有哪些其他类型的容器最适合大型 IO 服务器。
我正在为我的游戏服务器重写服务器架构(经过多次修改),并且这次希望朝着正确的方向前进,因为 id 而不是在不久的将来再次重写它。
感谢您的时间,并回复。
编辑:目前我的服务器架构是(简而言之):
Main thread listening and accepting -> Pass over the socket into a container.
Worker threads(2-3) grab IO events for the container of sockets.
Worker threads Read/Write Data on that container.
主线程和工作线程都使用链表。我想摆脱这个。