一起talk C栗子吧(第一百六十回:C語言實例--套接字通信模型二)
來源:程序員人生 發布時間:2016-06-07 15:33:44 閱讀次數:3845次
各位看官們,大家好,上1回中我們說的是套接字通訊模型的例子,這1回我們繼續說該例子。閑話休提,言歸正轉。讓我們1起talk C栗子吧!
看官們,我們在上1章回中介紹了套接字的兩種通訊模型。通訊模型是1種抽象的內容,大家可能不容易理解,接下來我們通過畫圖的方式來講明,這樣會更加直觀1些:

通過上面的圖形,大家可以看到:
- 迭代模式好像是1個隊列,隊列中的客戶排著整齊的隊伍順次與服務器進行通訊。
- 并發模型好像是1棵樹,樹干是服務器,樹枝是客戶端,每一個客戶都能與服務器通訊,就像每一個樹枝能與樹干相連1樣。
我們介紹完這兩種通訊模型后,有些看官覺得不知道使用哪一種通訊模型比較好,接下來我們1起來分析1下這兩種通訊模型的優缺點,以方便大家做選擇。
迭代通訊模型
- 優點:通訊雙方可以直接進行通訊,而不需要創建線程,進而節省了創建線程的時間和資源。
- 缺點:同1時刻只能有1個客戶與服務器進行通訊,其它客戶需要等待當前客戶通訊完成后才能與服務器通訊。
并發通訊模型
- 優點:服務器在同1時刻可以與多個客戶進行通訊,每一個客戶不需要等待其它客戶通訊完成績能與服務器通訊。
- 缺點:需要創建線程,花費1定的時間和資源。同時還需要對對線程進行管理,比如線程的同步與互斥。
大家可以根據實際的情況,并且結合這兩種通訊模型的優缺點來選取某種通訊模型。通常情況下,如果通訊的內容少,或要求通訊的客戶少時可以選擇迭代模型,反之選擇并發模型。
我們來分析1下:
- 如果通訊內容少了,通訊時間就短1些,其它客戶等待的時間也會短1些。
- 如果通訊的客戶少,其它的客戶等待的次數會少1些。
客戶等待的時間越短,客戶與服務器的通訊效力越高,說明通訊模的型效果好。
如果通訊的內容多,或說通訊的客戶多時,可以選擇并發模型。這個原理和迭代模型中的原理正好相反,所以我們就不分析了。
各位看官,關于套接字通訊模型的例子我們就說到這里。欲知后面還有甚么例子,且聽下回分解 。
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈