计算机网络知识点总结(二)什么是Socket?它跟TCP/IP的关系是什么? 📅 2026/7/2 20:40:50 什么是SocketSocket允许在相同或不同机器上的两个不同进程之间进行通信。更准确地说这是一种使用标准 Unix 文件描述符与其他计算机通信的方式。在 Unix 中每个 I/O 操作都是通过写入或读取文件描述符来完成的。文件描述符只是与打开的文件相关联的整数它可以是网络连接、文本文件、终端或其他东西。对于程序员来说套接字的外观和行为很像低级文件描述符。这是因为诸如 read() 和 write() 之类的命令对套接字的工作方式与它们对文件和管道的工作方式相同。套接字最初是在 2.1BSD 中引入的随后在 4.2BSD 中被改进为当前的形式。现在大多数最新的 UNIX 系统版本都提供了套接字功能。Socket与各种网络协议的关系如图所示Socket是为了给应用程序一个更加统一、简洁的API接口而将底层各种协议栈封装起来形成形成的一层接口函数。为什么要用SocketSocket本意为插口、插座的意思显而易见应用只要把对应的插头插到对应插孔上就可以与网络连接即Socket非常统一、便捷。应用程序不用去理解底层网络的实现原理只需要调用诸如socket()、bind()、listen()、connect()、accept()、send()、sendto()、recv()、recvfrom()、close()等函数即可。简单举例Socket如何实现客户端和服务端客户端和服务端信息交互构建客户端和服务器的方式有所不同但都涉及到Socket的基本构造。这两个进程都建立了自己的套接字。如何构建客户端在客户端建立Socket的步骤如下 1.使用socket()系统调用创建一个套接字。2.使用connect()系统调用将套接字连接到服务器的地址。3.发送和接收数据。有很多方式可以实现这一点最简单的方法就是使用read()和write()系统调用。如何构建服务端在服务器端建立套接字的步骤如下 1.使用socket()系统调用创建一个套接字。2.使用bind()系统调用将套接字绑定到一个地址。对于 Internet 上的服务器套接字地址由主机上的端口号组成。3.通过listen()系统调用监听连接。4.通过accept()系统调用接受连接。此调用通常会阻止连接直到客户端与服务器连接。5.使用read()和write()系统调用发送和接收数据。