2010-04-03 102 views
2

這裏的,據我瞭解:持久連接的基本客戶端 - 服務器設計?

  1. 客戶&服務器建立連接

  2. 客戶端發送服務器數據

  3. Server解釋數據,將客戶數據

  4. 所以上等等,直到客戶端發送斷開信號。

我只是想知道實現。步驟2和步驟3讓我感到困惑,也許我太過複雜了。是否有解釋數據比一個巨大的開關語句?

客戶端/服務器設計的任何好書嗎?具體討論多線程服務器,可伸縮性和消息設計(字節1 =標題信息,字節2 =等等等等)?特別針對C++。

+0

爲什麼連接需要持久? – 2010-04-03 19:29:09

回答

1

我會考慮數據包,數據包類型,數據包標識符和數據包類型處理程序的存儲。

一個想法是隻發送一個數據包的形式。每個數據包在開始時都保存它的標識符(可選)和類型(長度也是有用的),每個處理器在連接的每一側都有一堆數據包處理程序,每個處理程序管理相應類型的數據包(讀取和解釋)。如果你發送一個數據包長度,你甚至可以跳過支持不同類型的數據包,允許不同的客戶端和服務器版本。