int socket(int domain, int type, int protocol);据我所知,
int domain;此参数用于传递地址族或协议族。我相信地址族和协议族之间没有太大的区别。我们使用它来指定地址类型(IPV4或IPv6)。
int type;该参数用于网络层的UDP、TCP等连接类型。
int protocol;该参数用于指定TCP、UDP等协议。
我的问题是
第二个参数和第三个参数之间的区别是什么?如果我们使用TCP协议,我们将使用SOCK_STREAM,如果我们使用UDP协议,我们将使用第二个参数中的SOCK_DGRAM。那么为什么在这种情况下需要两个参数呢?为什么我们不使用一个参数而不是两个参数呢?
发布于 2013-11-14 15:06:58
根据手册页,协议是套接字的子类型,对于大多数类型,没有子类型,但某些类型可能会附加子类型。
例如,如果您有raw套接字类型,则可以指定协议编号。
int fd = socket (PF_INET, SOCK_RAW, IPPROTO_TCP);
-MS
https://stackoverflow.com/questions/19971285
复制相似问题