一、客户端/服务器架构

1、硬件C/S架构(打印机)

2、软件C/S架构

        互联网中处处是C/S架构

        如网站是服务端,浏览器是客户端(B/S架构也是C/S架构的一种)

        腾讯作为服务端提供视频,得下载个腾讯视频客户端才能看它的视频。

        C/S 架构与socket 的关系:

        socket就是为了完成C/S架构的开发

二、OSI 七层

须知一个完整的计算机系统是由硬件,操作系统,应用软件三者组成,具备了这个三个条件,一台计算机系统就可以自己跟自己玩了(打个单机游戏,玩个扫雷)

如果要跟别人一起玩,那就需要连接互联网。

互联网的核心就是由一堆协议组成,协议就是标准,比如全世界人通信的标准是英语

如果把计算机比作人,互联网协议就是计算机界的英语,所有的计算机都学会了互联网协议,那所有的计算机都可以按照统一的标准去收发信息从而完成通信了。

人们按照分工不同把互联网协议从逻辑上划分了层级

详见网络通信原理:http://www.cnblogs.com/linhaifeng/articles/5937962.html

 学习socket一定要先学习互联网协议:

1、首先:基于socket编程,就是基于socket来开发一款自己的C/S架构软件

2、其次:C/S架构的软件(软件属于应用层)是基于网络进行通信的

3、然后:网络的核心即一堆协议,协议即标准,想开发一款基于网络通信的软件,就必须遵循这些标准。

4、最后:就让我们从这些标准开始研究,开启socket编程之旅。

第 9 章  网络编程

三、socket层

在上图中,没有看到socket的影子,那么它到底在哪里呢?还是用图来说话,一目了然。

第 9 章  网络编程

四、socket是什么

socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口,在设计模式中,socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在socket接口后面,对用户来说,一组简单的接口就是全部,让socket去组织数据,以符合指定的协议。

所以,我们无需深入理解tcp/udp协议,socket已经为我们封装好了,我们只需要遵循socket的规定去编程,写出的程序自然就是遵循tcp/udp标准的。

也有人将socket说成ip+port,ip是用来标识互联网中的一台主机的位置,而port是用来标识这台机器上的一个应用程序,ip地址是配置到网卡上的,而port是应用程序开启的,ip与port的绑定就标识了互联网中独一无二的一个应用程序

而程序的pid是同一台机器上不同进程或者线程的标识
socket通俗解释

相关文章:

  • 2021-06-17
  • 2021-07-15
  • 2021-12-23
  • 2021-10-07
  • 2021-05-22
  • 2021-09-27
  • 2022-01-06
猜你喜欢
  • 2021-04-12
  • 2022-01-27
  • 2021-08-19
  • 2021-10-22
  • 2021-07-19
相关资源
相似解决方案