###
套接字接口的起源
套接字接口是加州大学伯克利分校的研究员在20世纪80年代早期提出来的。因为这个原因,它也常被叫做伯克利套接字。伯克利的研究者使得套接字接口适用于任何底层的协议。第一个实现的就是针对TCP/IP协议的,他们把它包括在Unix 4.2BSD的内核里,并且分发给许多学校和实验室。这在因特网的历史上是一个重大事件。几乎一夜之间,成千上万的人们接触到了TCP/IP和它的源代码。它引起了巨大的轰动,并激发了新的网络和网络互联研究的浪潮
节选自 《深入理解计算机系统》第三版
伯克利 Berkeley
Core Foundation通过CFNetwork提供了封装套接字的CFSocket和CFStream,此外还进一步提供了一些协议的封装,例如CFFTP、CFHTTP等
BSD套接字是XNU中所有网络组件的核心
socket 函数
客户端和服务器使用socket函数来创建一个套接字描述符
在<sys/socket.h>中定义int socket(int, int, int);
在bsd>kern>syscalls.master 中97 AUE_SOCKET ALL { int socket(int domain, int type, int protocol); }
若成功则为非负描述符,若出错则为-1
1 | /* |
1 | // socket.h 114~123 |
1 | // socket.h 528~586 |
1 | // socket.h 632~680 |