zoukankan      html  css  js  c++  java
  • 什么是Socket:

    先了解一些前提:

    网络由下往上分为 物理层 、数据链路层 、 网络层 、 传输层 、 会话层 、 表现层 和 应用层。
    通过初步了解,我知道IP协议对应于网络层,TCP协议对应于传输层,而HTTP协议对应于应用层。
    TCP/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP协议是应用层协议,主要解决如何包装数据。

    关于TCP/IP和HTTP协议的关系,网络有一段比较容易理解的介绍:
    我们在传输数据时,可以只使用(传输层)TCP/IP协议,但是那样的话,如果没有应用层,便无法识别数据内容。如果想要使传输的数据有意义,则必须使用到应用层协议。
    应用层协议有很多,比如HTTP、FTP、TELNET等,也可以自己定义应用层协议。
    WEB使用HTTP协议作应用层协议,以封装HTTP文本信息,然后使用TCP/IP做传输层协议将它发到网络上。”


    什么是Socket:
    网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。
    建立网络通信连接至少要一对端口号(socket)。
    socket本质是编程接口(API),对TCP/IP协议的封装。
    它的出现只是使得程序员更方便地使用TCP/IP协议栈而已。
    socket本身并不是协议,它是应用层与TCP/IP协议族通信的中间软件--抽象层,是一组调用接口(TCP/IP网络的API函数)
    TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口。
    HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通信的能力。

    socket在哪里?
    TCP/IP只是一个协议栈,就像操作系统的运行机制一样,必须要具体实现,同时还要提供对外的操作接口。
    这个就像操作系统会提供标准的编程接口,比如win32编程接口一样。
    TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口。”

    HTTP是轿车,提供了封装或者显示数据的具体形式;
    Socket是发动机,提供了网络通信的能力。

    实际上,传输层的TCP是基于网络层的IP协议的,而应用层的HTTP协议又是基于传输层的TCP协议的,而Socket本身不算是协议,就像上面所说,它只是提供了一个针对TCP或者UDP编程的接口。

    socket在哪里

  • 相关阅读:
    舵机驱动-GPIO MG995 STM32
    Ymodem协议-接收
    IAP注意事项
    stm32系统时钟配置,标准库v3.5
    FREERTOS移植(MDK 、STM32F103)
    C语言常量后缀
    回调函数
    运算符记忆口诀
    C语言函数指针
    frp 搭建内网穿透
  • 原文地址:https://www.cnblogs.com/sinsenliu/p/9560107.html
Copyright © 2011-2022 走看看