回覆列表
  • 1 # 使用者824832087851

    這個問題太大了,事實上不是C語言的問題,任何語言開發的通訊軟體都可能採取相似的總體結構。

    當然設計的細節又不相同,我認為大概會有這樣幾部分:

    1。處理物理通訊介面部分:任何通訊協議都具有自己的特色,需要一個模組去遮蔽和統一它們不同的介面要求,以便高層模組從具體的通訊細節脫離。這一部分根據具體情況可能又有幾種方式,比如會分為不同的協議層,像應用層SIP, SNMP等, 網路層的SOCKET,連路層和物理層,例如是否為光纖,還是乙太網,等,可能會選用不同協議棧程式庫,向高層模組提供能力不同的介面等。

    2。邏輯信令處理部分:典型的像一個電話系統的互動是有自己獨特信令要求的,對於其他任何一種通訊裝置,也一定有一套複雜的信令用來建立和釋放連線,修改已經建立的連線的屬性,以及支援一系列特殊的應用要求。這一部分並不簡單,並且一般都需要單獨抽離出來。試想,相同的電話功能可能實現在SIP/IP之上,也可能是現在H.323/ATM上,也許是傳統的程控交換,如果將邏輯信令的處理和物理通訊介面放在一起,將會非常複雜,並且極難維護。

    3。需要一個好的Framework,主要的功能是為不同模組提供靈活,安全,功能強大的通訊功能,多半類似於一種訊息佇列。

    4。維護模組。這是任何一個大型的,複雜的,要求高度可靠的系統都要有的一個部分。我覺得基本可以這麼分,當然並不絕對,而且也不夠詳細,僅供參考。

  • 中秋節和大豐收的關聯?
  • 在職人員怎麼安排公考複習時間?