什么是网络套接字?(计算机网络)


网络套接字是计算机网络节点内的一个软件组件,充当交付和接收数据的端点。网络架构的应用程序编程接口 (API) 定义了套接字的结构和属性。套接字仅在基于节点的应用程序中进程的生命周期内生成。

由于 TCP/IP 协议在互联网创建期间已标准化,“网络套接字”一词最常用于互联网协议套件的上下文中,因此被称为“互联网套接字”。在这种情况下,套接字的地址(传输协议、IP 地址和端口号的三元组)用于将其外部标识给其他主机。

节点内部进程间通信 (IPC) 的软件端点通常被称为套接字,它经常使用与网络套接字相同的 API。

管道是使用“Pipe”系统调用形成的,套接字是使用“socket”系统调用生成的。在网络上,套接字允许双向 FIFO 通信。在连接的两端,都会形成连接到网络的套接字。每个套接字都有其唯一的地址。该地址由 IP 地址和端口号组成。

在大多数客户端-服务器应用程序中,都使用套接字。服务器构建一个套接字,将其连接到网络端口,并等待客户端连接到它。创建套接字后,客户端尝试连接到服务器套接字。连接建立后,数据就开始传输。

套接字类型

**数据报套接字** − 数据报套接字是一种网络套接字,其中数据包的发送和接收无需建立连接。它类似于邮箱。信件(数据)被收集并投递(传输)到邮箱(接收套接字)。它是一种无连接的套接字。

**流套接字** − 流套接字是计算机操作系统中的一种网络套接字,它提供面向连接的、有序的、独特的无记录边界的数据流,以及创建和销毁连接以及检测错误的明确机制。它类似于电话。在电话之间(两端)建立连接。

下图显示了完整的客户端和服务器交互:

函数调用描述
create()创建套接字
bind()这是套接字标识符,类似于联系某人的电话号码。
connect()准备建立连接?
listen()准备发送消息
accept()确认类似于接听发送者的电话。
write()发送数据
read()接收数据
close()结束连接

更新于:2021年8月17日

5000+ 次查看

启动您的职业生涯

完成课程获得认证

开始学习
广告