accept()
函数的声明如下:int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
我可以理解
sockfd
,struct sockaddr * addr
的用途。
但是为什么我们必须传递套接字长度的地址,而不是使用socklen_t
。因为如果accept()
函数需要该长度,则可以通过socklen_t
获取它。为什么函数原型要以这种方式声明?
那么为什么要使用socklen_t *
类型?
socketlen_t
是一个 类型,用于声明一个 变量,该变量可以保存套接字地址的长度,这个长度本身因地址族而异。它并不代表那个长度本身。 - user207421