🔌 第二章 用电信号传输TCP/IP数据
📄 一句话概括

Socket 里插进去的是程序——套接字不是硬件插座,是协议栈里的控制信息+一组函数入口;【插插头】=调用 Socket 库的函数。

📝 本节和前面几节的关系

第二章收尾专栏:把【Socket】这个最容易被误解的词当故事讲清。

一、题目的答案

插进去的是程序:套接字是纯软件抽象, 没有金属触点也没有电压——【插上】只是建立了调用关系。

二、类比的价值与边界

插座类比的好处:插上就【通了】的直觉; 边界:灯泡通电即亮,套接字还要 connect 才算接通。

三、动手 Demo:Socket 里插的是什么

先给答案再讲边界:

for s in ['套接字不是硬件插座——',
          '是协议栈里的一块控制信息 + 一组函数入口;',
          '【插插头】这个动作=应用程序调 Socket 库的函数。']:
    print(s)

实跑输出:

--------------------------------------------------------------------
Socket 里插的是什么
--------------------------------------------------------------------
  COLUMN 的题目先给答案:插进去的是**程序**。

    套接字不是硬件插座——
    是协议栈里的一块控制信息 + 一组函数入口;
    【插插头】这个动作=应用程序调 Socket 库的函数。

  类比的边界:灯泡插上就通电,
  套接字【插上】后还要 connect 才算接通。

  术语背后是抽象:把通信控制信息包装成【插座】,
  应用程序就不用懂协议也能通信——这正是 Socket 设计的巧处。

术语背后是抽象——把通信控制信息包装成【插座】, 应用程序不懂协议也能通信,这正是 Socket 设计的巧处。

30 秒实验

  1. 用自己的话给【套接字】下一个定义。
  2. 把【灯泡插座】类比的三处失真写出来。
  3. 想想 Socket API 为什么能三十年不变。

常见误区

  1. 以为 Socket 是硬件——纯软件抽象。
  2. 以为 create 即接通——还要 connect。
自测三问(点开对答案) 1. Socket 里插进去的是什么? —— 程序(软件抽象)。 2. 套接字的实体是什么? —— 控制信息+函数入口。 3. 类比的边界在哪? —— 插上不等于接通,还要 connect。

相关笔记