套接字(socket)最早是由BSD在1982年引入的通信机制,目前已被广泛移植到主流的操作系统中。对于应用开发人员来说,套接字(socket)是一种特殊的I/O接口,也是一种文件描述符。socket是一种常用的进程之间通信机制,不仅能实现本地不同进程之间的通信,而且通过网络能够在不同主机的进程之间进行通信。
对于网络通信而言,每一个socket都可用网络地址结构(协议、本地地址、本地端口)来表示。socket通过一个专门的函数创建,并返回一个整型的socket描述符。随后的各种操作都是通过socket描述符来实现的。
套接字的分类:
(1)流式套接字(SOCK_STREAM)
提供了一个面向连接、可靠的数据传输服务,数据无差错、无重复的发送且按发送顺序接收。内设置流量控制,避免数据流淹没慢的接收方。数据被看作是字节流,无长度限制。TCP通信使用的就是流式套接字。
(2)数据报套接字(SOCK_DGRAM)
提供无连接服务。数据包以独立数据包的形式被发送,不提供无差错保证,数据可能丢失或重复,顺序发送,可能乱序接收。UDP通信使用的就是数据报套接字。
(3)原始套接字(SOCK_RAW)
原始套接字允许对较低层次协议如IP、ICMP进行直接访问。它功能强大但使用较为不便,主要用于一些协议的开发。
套接字
最新推荐文章于 2023-08-30 09:47:10 发布