0表示以下行? 我可以使用的其他标志是什么?
server = socket(AF_UNIX, SOCK_STREAM, 0)
答案 0 :(得分:10)
正如其他人所说,socket
的第三个参数通常是int
,表示协议。 0
表示呼叫者不想指定协议,并将其留给服务提供商。
除零以外,另一个常见的是IPPROTO_TCP
。
可以在您的计算机上使用man 2 socket
或访问here在手册页上找到完整的详细信息。
答案 1 :(得分:3)
来自socket的手册页:
int socket(int domain, int type, int protocol);
该协议指定了一个 与之配合使用的特定协议 插座。通常只有一个 协议 存在以支持给定协议中的特定套接字类型 家庭,在这种情况下协议可以 异型材 被称为 0 。但是,许多协议可能是有可能的 存在,在这种情况下是特定的 协议必须 以这种方式指定。要使用的协议号是特定的 其中的“通信领域” 通讯之 将要发生;见协议(5)。请参阅getprotoent(3) 如何将协议名称字符串映射到 proto- col number。
答案 2 :(得分:-1)
这里最好的事情是阅读man page。该文档指出第三个参数是协议,在这种情况下是SOCK_STREAM,但也可以是其他协议。