Skip to content
On this page

socket(2)


标签:linux/network  

函数原型

在内核空间创建两个缓冲区:接收缓冲区和发送缓冲区。

最终返回文件描述符,维护两个缓冲区。

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:数据流式套接字(流式套接字):默认协议TCP
  • SOCK_DGRAM:数据报式套接字(报式套接字):默认协议UDP
  • SOCK_RAW:原始套接字;协议要在第三个参数指定

int protocol:指定协议,如果默认协议则填0;

  • IPPROTO_TCPIPPROTO_UDP

返回值

成功,返回套接字描述符

失败,返回-1,更新 errno

其他笔记

在 Unix 中,socket 是一个文件描述符,它对应的 IP 和 port 需要使用地址信息结构体保存,参考bind(2)

相关笔记

Last updated: