套接字是网络上运行的两个程序之间双向通信链路的一个端点。套接字机制通过建立命名联系点来提供进程间通信 (IPC) 的方法,在这些联系点之间进行通信。
就像’Pipe’ 用于创建管道,而套接字是使用‘socket’系统调用创建的。套接字通过网络提供双向FIFO通信功能。在通信的每一端都会创建一个连接到网络的套接字。每个套接字都有一个特定的地址。该地址由 IP 地址和端口号组成。
套接字通常用于客户端服务器应用程序。服务器创建一个套接字,将其附加到网络端口地址,然后等待客户端联系它。客户端创建一个套接字,然后尝试连接到服务器套接字。建立连接后,就会进行数据传输。
插座类型:
有两种类型的套接字:数据报套接字和流套接字。
- 数据报套接字:
这是一种具有用于发送和接收数据包的无连接点的网络。它类似于邮箱。投递到信箱中的信件(数据)被收集并传送(传输)到信箱(接收套接字)。 - 流套接字
在计算机操作系统中,流套接字是一种进程间通信套接字或网络套接字,它提供面向连接的、有序的和独特的数据流,没有记录边界,具有用于创建和销毁连接以及检测错误的明确定义的机制。它类似于电话。在电话(两端)之间建立连接并进行对话(数据传输)。
Function Call | Description |
---|---|
Create() | To create a socket |
Bind() | It’s a socket identification like a telephone number to contact |
Listen() | Ready to receive a connection |
Connect() | Ready to act as a sender |
Accept() | Confirmation, it is like accepting to receive a call from a sender |
Write() | To send data |
Read() | To receive data |
Close() | To close a connection |