2010-04-03 105 views
2

这里的,据我了解:持久连接的基本客户端 - 服务器设计?

  1. 客户&服务器建立连接

  2. 客户端发送服务器数据

  3. Server解释数据,将客户数据

  4. 所以上等等,直到客户端发送断开信号。

我只是想知道实现。步骤2和步骤3让我感到困惑,也许我太过复杂了。是否有解释数据比一个巨大的开关语句?

客户端/服务器设计的任何好书吗?具体讨论多线程服务器,可伸缩性和消息设计(字节1 =标题信息,字节2 =等等等等)?特别针对C++。

+0

为什么连接需要持久? – 2010-04-03 19:29:09

回答

1

我会考虑数据包,数据包类型,数据包标识符和数据包类型处理程序的存储。

一个想法是只发送一个数据包的形式。每个数据包在开始时都保存它的标识符(可选)和类型(长度也是有用的),每个处理器在连接的每一侧都有一堆数据包处理程序,每个处理程序管理相应类型的数据包(读取和解释)。如果你发送一个数据包长度,你甚至可以跳过支持不同类型的数据包,允许不同的客户端和服务器版本。