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

原创 2016年05月31日 22:55:41

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


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

这里写图片描述

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

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

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

迭代通信模型

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

并发通信模型

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

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

我们来分析一下:

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

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

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

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


相关文章推荐

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

各位看官们,大家好,上一回中咱们说的是基于AF_INET域数据报套接字通信的例子,这一回咱们说的例子是:套接字通信模型 。闲话休提,言归正转。让我们一起talk C栗子吧!...
  • talk_8
  • talk_8
  • 2016年05月31日 05:54
  • 1179

一起talk C栗子吧(第一百五十六回:C语言实例--基于AF_UNIX域的流套接字通信)

各位看官们,大家好,上一回中咱们说的获取socket通信地址的例子,这一回咱们说的例子是:基于AF_UNIX域的流套接字通信 。闲话休提,言归正转。让我们一起talk C栗子吧!...
  • talk_8
  • talk_8
  • 2016年05月28日 20:57
  • 3154

一起talk C栗子吧(第一百五十八回:C语言实例--基于AF_INET域的流套接字通信)

各位看官们,大家好,上一回中咱们说的是基于AF_UNIX域的数据报套接字通信的例子,这一回咱们说的例子是:基于AF_INET域的流套接字通信 。闲话休提,言归正转。让我们一起talk C栗子吧!...
  • talk_8
  • talk_8
  • 2016年05月29日 19:41
  • 2912

一起talk C栗子吧(第一百五十九回:C语言实例--基于AF_INET域的数据报套接字通信)

各位看官们,大家好,上一回中咱们说的是基于AF_INET域的流套接字通信的例子,这一回咱们说的例子是:基于AF_INET域的数据报套接字通信 。闲话休提,言归正转。让我们一起talk C栗子吧!...
  • talk_8
  • talk_8
  • 2016年05月30日 05:50
  • 3076

一起talk C栗子吧(第一百六十二回:C语言实例--套接字知识体系图)

各位看官们,大家好,上一回中咱们说的是套接字通信模型的例子,这一回咱们说的例子是:套接字知识体系图。闲话休提,言归正转。让我们一起talk C栗子吧!...
  • talk_8
  • talk_8
  • 2016年06月05日 20:45
  • 2021

一起talk C栗子吧(第九十六回:C语言实例--使用共享内存进行进程间通信二)

各位看官们,大家好,上一回中咱们说的是使用共享内存进行进程间通信的例子,这一回咱们接着上一回内容继续说使用共享内存进行进程间通信。闲话休提,言归正转。让我们一起talk C栗子吧!...
  • talk_8
  • talk_8
  • 2016年01月10日 22:58
  • 1502

一起talk C栗子吧(第八十五回:C语言实例--使用信号进行进程间通信二)

各位看官们,大家好,上一回中咱们说的是使用信号进行进程间通信的例子,这一回咱们接着上一回的内容,继续说该例子。闲话休提,言归正转。让我们一起talk C栗子吧!...
  • talk_8
  • talk_8
  • 2015年12月29日 22:29
  • 1788

一起talk C栗子吧(第八十九回:C语言实例--使用管道进行进程间通信二)

各位看官们,大家好,上一回中咱们说的是使用管道进行进程间通信的例子,这一回咱们说的例子是:使用管道进行进程间通信,不过使用管道的方式不相同。闲话休提,言归正转。让我们一起talk C栗子吧!...
  • talk_8
  • talk_8
  • 2016年01月03日 22:41
  • 1604

一起talk C栗子吧(第九十回:C语言实例--使用管道进行进程间通信三)

各位看官们,大家好,上一回中咱们说的是使用管道进行进程间通信的例子,这一回咱们说的例子是:使用管道进行进程间通信,不过使用管道的方式不相同。闲话休提,言归正转。让我们一起talk C栗子吧!...
  • talk_8
  • talk_8
  • 2016年01月04日 22:54
  • 1408

一起talk C栗子吧(第一百四十九回:C语言实例--socket通信接口一)

各位看官们,大家好,上一回中咱们说的是socket通信的例子,这一回咱们继续说该例子。闲话休提,言归正转。让我们一起talk C栗子吧!...
  • talk_8
  • talk_8
  • 2016年05月09日 22:06
  • 1237
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一起talk C栗子吧(第一百六十一回:C语言实例--套接字通信模型二)
举报原因:
原因补充:

(最多只允许输入30个字)