程序员人生 网站导航

一起talk C栗子吧(第一百六十回:C语言实例--套接字通信模型二)

栏目:php教程时间:2016-06-07 15:33:44

各位看官们,大家好,上1回中我们说的是套接字通讯模型的例子,这1回我们继续说该例子。闲话休提,言归正转。让我们1起talk C栗子吧!


看官们,我们在上1章回中介绍了套接字的两种通讯模型。通讯模型是1种抽象的内容,大家可能不容易理解,接下来我们通过画图的方式来讲明,这样会更加直观1些:

这里写图片描述

通过上面的图形,大家可以看到:

  • 迭代模式好像是1个队列,队列中的客户排着整齐的队伍顺次与服务器进行通讯。
  • 并发模型好像是1棵树,树干是服务器,树枝是客户端,每一个客户都能与服务器通讯,就像每一个树枝能与树干相连1样。

我们介绍完这两种通讯模型后,有些看官觉得不知道使用哪一种通讯模型比较好,接下来我们1起来分析1下这两种通讯模型的优缺点,以方便大家做选择。

迭代通讯模型

  • 优点:通讯双方可以直接进行通讯,而不需要创建线程,进而节省了创建线程的时间和资源。
  • 缺点:同1时刻只能有1个客户与服务器进行通讯,其它客户需要等待当前客户通讯完成后才能与服务器通讯。

并发通讯模型

  • 优点:服务器在同1时刻可以与多个客户进行通讯,每一个客户不需要等待其它客户通讯完成绩能与服务器通讯。
  • 缺点:需要创建线程,花费1定的时间和资源。同时还需要对对线程进行管理,比如线程的同步与互斥。

大家可以根据实际的情况,并且结合这两种通讯模型的优缺点来选取某种通讯模型。通常情况下,如果通讯的内容少,或要求通讯的客户少时可以选择迭代模型,反之选择并发模型。

我们来分析1下:

  • 如果通讯内容少了,通讯时间就短1些,其它客户等待的时间也会短1些。
  • 如果通讯的客户少,其它的客户等待的次数会少1些。

客户等待的时间越短,客户与服务器的通讯效力越高,说明通讯模的型效果好。

如果通讯的内容多,或说通讯的客户多时,可以选择并发模型。这个原理和迭代模型中的原理正好相反,所以我们就不分析了。

各位看官,关于套接字通讯模型的例子我们就说到这里。欲知后面还有甚么例子,且听下回分解 。


------分隔线----------------------------
------分隔线----------------------------

最新技术推荐