Appearance
函数原型
在内核空间创建两个缓冲区:接收缓冲区和发送缓冲区。
最终返回文件描述符,维护两个缓冲区。
c
#include <sys/types.h> /* See NOTES */
#include <sys/socket.h>
int socket(int domain, int type, int protocol);参数
int domain:指定协议族,地址族:
c
Name Purpose Man page
AF_UNIX, AF_LOCAL Local communication unix(7)
AF_INET IPv4 Internet protocols ip(7)
AF_INET6 IPv6 Internet protocols ipv6(7)
... ... ...int type:
SOCK_STREAM:数据流式套接字(流式套接字):默认协议TCPSOCK_DGRAM:数据报式套接字(报式套接字):默认协议UDPSOCK_RAW:原始套接字;协议要在第三个参数指定
int protocol:指定协议,如果默认协议则填0;
IPPROTO_TCP,IPPROTO_UDP
返回值
成功,返回套接字描述符
失败,返回-1,更新 errno
其他笔记
在 Unix 中,socket 是一个文件描述符,它对应的 IP 和 port 需要使用地址信息结构体保存,参考bind(2)。