• 套接字


    套接字 - 面向连接TCP和无连接UDP


    客户端 / 服务端架构

    • 什么是客户端 / 服务端架构
      • 服务器是一个软件或硬件,用于向一个或多个客户端(客户)提供所需要的服务
      • 服务器存在的唯一目的就是等待客户的请求,给这些客户服务,然后再等待其他的请求

    套接字: 通信端点

    • 通信端点

      • 让服务器能监听请求
    • 什么是套接字

      • 套接字是一种具有通信端点概念的计算机网络数据结构
      • 网络化的应用程序在开始任何通讯之前都必须要创建套接字
    • 套接字的类型

      • 面向连接的套接字,即在通信之前一定要建立一条连接,也被称为"虚电路"或"流套接字"

    面向连接与无连接

    • 面向连接

      • 在通信之前一定要建立一条连接,也被称为"虚电路"或"流套接字"

      • 特点:

        • 面向连接的通信方式提供了顺序的、可靠的、不会重复的数据传输,而且也不会被加上数据边界。
        • 这也意味着每一个要发送的信息,可能会被拆分成多份,每一份都会不多不少的正确的到达目的地,然后被重新按顺序拼装起来,传给正在等待的应用程序
      • 这种连接方式主要协议是传输控制协议(即TCP)。要创建TCP套接字就得在创建的时候指定套接字类型的SOCK_STREAM

      • TCP套接字采用SOCK_STREAM这个名字,表示它作为流套接字的特点

      • 由于这些套接字使用网际协议(IP)来查找网络中的主机,所以这样形成的整个系统,一般有两个协议组成(TCP / IP),即 TCP / IP

    • 无连接

      • 与虚电路完全相反的数据报型的无连接套接字

      • 特点:

        • 无需建立连接就可以进行通讯
        • 数据报会保留数据边界,意味着数据是整个发送的,不会像面向连接的协议那样先拆分成小块
      • 缺点:

        • 数据到达的顺序、可靠性及不重复性无法保证,甚至可能会丢失
      • 优点:

        • 由于面向连接需要提供一些保证,以及要维持虚电路连接,这些都是很重的额外负担
        • 数据报没有这些负担,所以它更"便宜"。通常能提供更好的性能,更适合某些应用场合
      • 实现这种连接的主要协议是用户数据报协议(即UDP)。

      • 创建UDP套接字需要指定套接字类型为SOCK_DGRAM

      • 由于UDP套接字使用的是网际协议来查找网络中的主机,所以这样形成的整个系统,一般有两个协议组成(UDP / IP),即 UDP / IP

  • 相关阅读:
    一天摄入多少蛋白质比较合理?
    给函数添加元数据(python)
    反转链表(C++实现)
    删除链表的中间节点(C++实现)
    在双向链表中删除倒数第K个链表节点(C++实现)
    在单链表中删除倒数第K个节点(C++实现)
    二叉树的创建及遍历(递归和非递归C++实现)
    删除排序数组中的重复项(C++实现)
    打印两个有序链表的公共部分(C++实现)
    用一个栈实现另一个栈的排序(C++实现)
  • 原文地址:https://www.cnblogs.com/gxfaxe/p/15202441.html
Copyright © 2020-2023  润新知