程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> 關於C >> 一起talk C栗子吧(第一百六十回:C語言實例

一起talk C栗子吧(第一百六十回:C語言實例

編輯:關於C

各位看官們,大家好,上一回中咱們說的是套接字通信模型的例子,這一回咱們繼續說該例子。閒話休提,言歸正轉。讓我們一起talk C栗子吧!


看官們,我們在上一章回中介紹了套接字的兩種通信模型。通信模型是一種抽象的內容,大家可能不容易理解,接下來我們通過畫圖的方式來說明,這樣會更加直觀一些:

這裡寫圖片描述

通過上面的圖形,大家可以看到:

迭代模式好像是一個隊列,隊列中的客戶排著整齊的隊伍依次與服務器進行通信。 並發模型好像是一棵樹,樹干是服務器,樹枝是客戶端,每個客戶都能與服務器通信,就像每個樹枝能與樹干相連一樣。

我們介紹完這兩種通信模型後,有些看官覺得不知道使用哪種通信模型比較好,接下來我們一起來分析一下這兩種通信模型的優缺點,以方便大家做選擇。

迭代通信模型

優點:通信雙方可以直接進行通信,而不需要創建線程,進而節省了創建線程的時間和資源。 缺點:同一時刻只能有一個客戶與服務器進行通信,其它客戶需要等待當前客戶通信完成後才能與服務器通信。

並發通信模型

優點:服務器在同一時刻可以與多個客戶進行通信,每個客戶不需要等待其它客戶通信完成就能與服務器通信。 缺點:需要創建線程,花費一定的時間和資源。同時還需要對對線程進行管理,比如線程的同步與互斥。

大家可以依據實際的情況,並且結合這兩種通信模型的優缺點來選取某種通信模型。通常情況下,如果通信的內容少,或者請求通信的客戶少時可以選擇迭代模型,反之選擇並發模型。

我們來分析一下:

如果通信內容少了,通信時間就短一些,其它客戶等待的時間也會短一些。 如果通信的客戶少,其它的客戶等待的次數會少一些。

客戶等待的時間越短,客戶與服務器的通信效率越高,說明通信模的型效果好。

如果通信的內容多,或者說通信的客戶多時,可以選擇並發模型。這個原理和迭代模型中的原理正好相反,所以我們就不分析了。

各位看官,關於套接字通信模型的例子咱們就說到這裡。欲知後面還有什麼例子,且聽下回分解 。


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved