【发布时间】:2013-12-03 12:09:00
【问题描述】:
我想使用套接字在 C++ 上编写一个服务器应用程序。此应用程序是游戏服务器。 服务器接受来自客户端的连接并在整个会话期间保持这些连接。服务器和客户端都互相发送数据。 连接可能会保持很长时间。 除了发送和接收数据之外,服务器还进行大量数据处理。 服务器还将数据保存到硬盘。
您能告诉我组织这一切的最佳方式是什么吗? 为每个客户端连接创建一个线程好吗? 我可以以某种方式使用异步套接字吗? 关于这个主题(游戏服务器开发、服务器开发)有哪些值得阅读的文章?
谢谢!
【问题讨论】:
-
可能没有“最佳”方式。有不好的方法,也有更好的方法,甚至是好的方法,但是您需要编写满足您的需求/要求的代码(最好使用其中一种好方法)。
-
有多少客户?每个客户端的线程扩展性很差。如果你避免每个客户端线程,那么你应该使用异步套接字,这样你就可以在一个线程中处理多个客户端。
标签: c++ performance sockets architecture server-side