套接字
什么是套接字?
所谓 套接字 (Socket) ,就是对网络中 不同主机 上的应用进程之间进行双向通信的端点的抽象。
UNIX/Linux下一切皆文件。 socket
就是可读、可写、可控、可关的文件描述符。socket
最开始的含义是一个 (IP地址,端口) 对 (IP, port)
。唯一地表示了使用 TCP 通信的一端。
为什么要用到套接字?
我们知道,数据链路层、网络层、传输层协议是在内核中实现的。而 socket
就是 操作系统 提供给 应用程序 通过 系统调用 访问这些 协议服务 的一组 API
。socket
不但可以访问内核中 TCP/IP
协议栈,而且访问其他网络协议栈。
socket
定义的API
提供哪些功能?
- 将 应用程序数据 从 用户缓冲区 中复制到
TCP/UDP
内核发送缓冲区 ,将发送数据交付内核。 - 从
TCP/UDP