开发者
资源
文档评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

socket

接口名称

socket(int domain, int type, int protocol)

接口描述

创建通信节点并返回描述符。

参数说明

参数说明备注
domain通信域支持AF_INET。
type通信语义类型支持SOCK_STREAM、SOCK_DGRAM、SOCK_CLOEXEC(默认支持该type,且不可修改)、SOCK_NONBLOCK。
protocol协议类型支持IPPROTO_TCP(type必须为SOCK_STREAM)。支持IPPROTO_UDP(type必须为SOCK_DGRAM)。支持IPPROTO_IP,即设置为0。

返回值

类型:int

  • 正数:socketfd,表示成功
  • -1:表示失败,并设置errno以指示错误类型

错误码

错误码描述
EINVAL未知协议,或协议族不可用。
EMFILE进程的file数量超过max_tcpcb。
ENOMEM内存申请失败。
EPROTONOSUPPORTdomain不支持指定协议。
ENAVAILKNET资源初始化失败。
EACCES进程没有适当的权限。
ENOBUFS系统中的可用资源不足,无法执行该操作。
EMFILE进程的file数量超过最大文件描述符数。通过ulimit -n查看。
ENFILE系统的file数量超过上限。
ELIBBAD系统库符号加载失败。
EPERM信号退出流程中,不允许调用该函数接口。
EINVAL共线程部署模式时,sockfd的worker id和当前线程的worker id不一致,导致socket跨worker线程调用。