socket.io ios_ios响应式编程

socket.io ios_ios响应式编程在实际当中, 肯定是不止一个TCP/IP或者是一个应用程序进程在传输数据, 为了可以区分开来, 系统提供了一套API, 方便TCP/IP与应用程序交互, 一般把这个称为Socket API. 酱紫应用层可以和传输层通过这个Socket API, 区分来自不同的应用程序进程或者是…

文章分享至我的个人技术博客: https://cainluo.github.io/14986613643920.html


Socket的解释

Socket翻译过来中文称为套接字, 这里我找到了一段比较官方的解释Socket是什么东西:

Socket是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元,包含进行网络通信必须的五种信息:连接使用的协议本地主机的IP地址本地进程的协议端口远地主机的IP地址远地进程的协议端口

在实际当中, 肯定是不止一个TCP/IP或者是一个应用程序进程在传输数据, 为了可以区分开来, 系统提供了一套API, 方便TCP/IP与应用程序交互, 一般把这个称为Socket API.

酱紫应用层可以和传输层通过这个Socket API, 区分来自不同的应用程序进程或者是网络通信, 使得数据可以并发传输.


Socket的C/S端

Socket的使用其实也没有我们想象中那么难, 只是这里需要有一个前提条件, 因为建立Socket通信是至少需要一对套接字, 其中一个是运行在我们的客户端上, 称为Client Socket, 还有一个是运行在服务器上, 称为Service Socket.

Socket之间的连接过程分为三个过程:

  • 服务器监听
  • 客户端请求
  • 连接确认

Socket同时支持TCPUDP两种传输协议, 啥意思呢?

Socket使用TCP协议通信的时候, Socket就是一个TCP的连接, 那么如果Socket使用的是UDP协议通信, 那么这时候的Socket就是UDP连接.

如果要有图的话, 大概就这样了:

1


网络的协议

既然降到Socket, 那么就要说说网络里面的协议, 这里就要普及一下网络里面的到底都有啥, 首先我们要知道, 在网络里面一共有七层协议.

从上往下分的话:

  • 应用层
  • 表达层
  • 会话层
  • 传输层
  • 网络层
  • 数据链路层
  • 物理层
2

但我们通常会把底下三层(网络层, 数据链路层, 物理层)统称为媒体层, 一般都是专门搞网络的网络工程师大神们研究的对象.

而上面四层(传输层, 会话层, 表示层, 应用层)被称为主机层, 也是广大用户所面向和关心的内容.

说到协议, 我们就不得不提一下HTTP:

  • HTTP协议: 它是对应着应用层.
  • TCP协议: 它是对应着传输层.
  • IP协议: 则对应着网络层.

HTTP协议是基于TCP连接的, 所以三者根本就没啥可比性.

  • TCP/IP协议: 属于传输层协议, 主要解决数据如何在网络中传输.
  • HTTP协议: 属于应用层, 主要解决如何包装数据.

Socket应用层TCP/IP协议族通信中间的软件抽象层, 是它的一组接口.


TCP/IP五层模型

既然都提到了TCP/IP这个协议, 那么就来讲讲, TCP/IP里的五层模型.

这里面的五层模型分别为:

  • 应用层
  • 传输层
  • 网络层
  • 数据链路层
  • 物理层
socket.io ios_ios响应式编程

那么我们日常生活中所接触到的网络器材有哪些? 分别处于哪个模型?

  • 物理层: 中继器, 集线器, 双绞线
  • 数据链路层: 以太网交换机(Modem), 网卡(网卡有一半是工作在物理层)
  • 网络层: 路由器, 三层交换机
  • 传输层: 四层交换机, 路由器(也有一些特殊的路由器在传输层中工作)

其中TCP/IP应用层比较特殊, 它是包含了会话层, 表达层, 应用层等功能, 这里要说一点, TCP/IP协议并不能在传输层总是保证可靠的传输数据包, 但七层模型可以做到.

TCP/IP还提供了另一种传输模式, 叫做UDP(用户数据报协议), 但这种协议不能保证可靠的数据包传输.

这里再解释一下:

  • TCP: 面向连接, 提供可靠的数据传输, 用于传输大量数据, 使用数据流模式, 速度慢, 建立连接时开销较大
  • UDP: 非面向连接, 传输不可靠, 用于传输少量的数据, 速度快

总的来说TCP是一个数据流的模式协议, 而UDP是一种数据报模式的协议.

刚刚说了Socket是基于TCP/IP协议上的抽象, 也就是说Socket只是对TCP/IP的封装, 本身是没有协议的, 只有通过Socket API, 我们才能够使用TCP/IP协议.

大概的关系图就是酱紫吧:

socket.io ios_ios响应式编程


总结

这篇文章虽然不涉及任何的代码, 但都是一些必备的基础知识, 如果想更详细的了解或者是找更官方的文档, 可以去看看苹果爸爸提供的Networking Overview这篇文章.


最后

码字很费脑, 看官赏点饭钱可好

微信

支付宝

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/13801.html

(0)

相关推荐

  • 用 Python 更新第三方库

    用 Python 更新第三方库Python 是一种广泛使用的动态编程语言,它的简洁性和灵活性使其成为一种很受开发者欢迎的语言。不过,由于不同的项目和库使用不同版本的 Python,所以在更新 Python 版本后,需要更新之前安装的第三方库,以避免出现不兼容问题。在本文中,我们将介绍如何使用 Python 更新第三方库,以及如何管理不同版本的 Python 和库。

    2024-08-31
    22
  • JAVA推荐系统-基于用户和物品协同过滤的电影推荐[亲测有效]

    JAVA推荐系统-基于用户和物品协同过滤的电影推荐[亲测有效]系统原理 该系统使用java编写的基于用户的协同过滤算法(UserCF)和基于物品(此应用中指电影)的协同过滤(ItemtemCF) 利用统计学的相关系数经常皮尔森(pearson)相关系数计算相关系

    2023-07-31
    131
  • Redis学习笔记(二十) 发布订阅(下)「终于解决」

    Redis学习笔记(二十) 发布订阅(下)「终于解决」当一个客户端执行SUBSCRIBE命令订阅某个或某些频道时,这个客户端与被订阅频道之间就建立起了一种订阅关系。 Redis将所有频道的订阅关系保存在服务器状态的pubsub_channels字典里面,

    2023-03-11
    177
  • kibana 安装_kibana安装

    kibana 安装_kibana安装1.从官网下载 官网下载对应版本 https://www.elastic.co/cn/downloads/past-releases#kibana 2.解压缩 tar -xvf kibana-7.15

    2023-06-15
    137
  • PyCharm修改背景颜色为中心

    PyCharm修改背景颜色为中心PyCharm是一款由JetBrains公司开发的Python IDE,采用Python语言编写,支持多个主流操作系统,如Windows、Linux和MacOS。该编辑器具有强大的功能和灵活的设置,因此备受编程人员的青睐。PyCharm支持多种颜色主题设置,包括背景颜色、字体颜色等,其中背景颜色是十分重要的设置之一。本篇文章将以PyCharm修改背景颜色为中心,向读者介绍如何自定义PyCharm的背景颜色,使其满足个人喜好及需求。

    2024-07-07
    39
  • python编写盲注自动化脚本(用python写自动化脚本)

    python编写盲注自动化脚本(用python写自动化脚本)首先你需要在北鲲云超算上申请python这款软件,然后选择配置后就可以直接开始作业了,运行软件后就可以开始搭建脚本界面,编写脚本代码,用超算跑作业很方便,直接线上就可以使用,不需要下载到本地,而且计算效率非常的高。

    2023-10-28
    150
  • 无效的Python SDK

    无效的Python SDKPython是一门高级编程语言,其简单易用、灵活多变的特点受到了众多开发者的喜爱。在Python生态圈中,开发者可以便捷地使用各种SDK开发自己的应用。但是,尽管Python的生态圈已经相当成熟和完善,仍然有一些Python SDK存在问题。本文主要讨论无效的Python SDK,这类SDK通常存在着质量不佳、未经充分测试、文档不完整等问题,使它们在生产环境中难以使用。

    2024-07-31
    38
  • 【2019年8月版】OCP 071认证考试原题-第40题「建议收藏」

    【2019年8月版】OCP 071认证考试原题-第40题「建议收藏」Choose two. Which two statements are true about single row functions? A) CONCAT : can be used to co…

    2022-12-27
    162

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注