c++ - 组织 C++ 套接字服务器的最佳方式是什么?

标签 c++ performance sockets architecture server-side

我想使用套接字在 C++ 上编写服务器应用程序。这个应用程序是一个游戏服务器。 服务器接受来自客户端的连接并在整个 session 期间保持这些连接。服务器和客户端都互相发送数据。 连接可能会保持很长时间。 服务器除了发送和接收数据外,还进行大量的数据处理。 服务器也将数据保存到硬盘。

你能告诉我组织这一切的最佳方式是什么吗? 为每个客户端连接创建一个线程好吗? 我可以以某种方式使用异步套接字吗? 关于这个主题(游戏服务器开发、服务器开发)哪些文章适合阅读?

谢谢!

最佳答案

您没有说您正在为哪个操作系统编写代码,但在 Windows 上最具可扩展性的方法是使用带有 I/O 完成端口的重叠 I/O。这使您可以仅使用少量线程轻松扩展到数千个连接。

我写了一些 articles about how to use IOCP其中包括用于一些简单服务器设计的 C++ 代码。这些可能有助于您了解该技术的功能。

关于c++ - 组织 C++ 套接字服务器的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20080026/

相关文章:

C++ 创建多个套接字客户端

c++ - 析构函数在哪里调用?

java - SSL 握手问题

关闭文件上的 Python 套接字 Makefile 错误 I/O 操作

python - 从多个集合中累积加权计数的最快方法。计数器对象?

c++ - 如何测量每秒的增量数

java - ObjectInputStream 接收的对象不等于 ObjectOutputStream 发送的对象

c++ - 带有 boost lib 的路径

c++ - C/C++,否定运算符的挫败感

c++ - 从 VS 2012 开始在 Windows 和 Win XP 上运行 C++ 应用程序的要求