connect(2)调用是否使用了完整的结构sockaddr\u in,或者只需要结构in\u addr即可?
我很好奇,因为connect(2)的手册页很短,它需要一个结构sockaddr*,通常是强制转换的。connect(2)调用是否使用了完整的结构sockaddr\u in,或者只需要结构in\u addr即可?,c,network-programming,C,Network Programming,我很好奇,因为connect(2)的手册页很短,它需要一个结构sockaddr*,通常是强制转换的。sockaddr\u in和in\u addr甚至不相似。那是行不通的。因为通常需要的不仅仅是一个地址,所以它们是不同的。例如,建立IP套接字连接需要一个端口号。sockaddr\u in和in\u addr甚至不相似。那是行不通的。因为通常需要的不仅仅是一个地址,所以它们是不同的。例如,建立连接IP套接字需要一个端口号。连接(2)调用的工作方式取决于您使用的套接字域(即作为第一个参数传递给的值)
sockaddr\u in
和in\u addr
甚至不相似。那是行不通的。因为通常需要的不仅仅是一个地址,所以它们是不同的。例如,建立IP套接字连接需要一个端口号。sockaddr\u in
和in\u addr
甚至不相似。那是行不通的。因为通常需要的不仅仅是一个地址,所以它们是不同的。例如,建立连接IP套接字需要一个端口号。连接(2)调用的工作方式取决于您使用的套接字域(即作为第一个参数传递给的值)。如果您使用的是AF\u INET
协议系列,则connect
需要sockaddr\u in
。如果您使用的是AF\u INET6
协议,那么它需要sockaddr\u in6
,其他协议系列都有自己的地址结构
无论您使用哪个协议族,在调用connect
或任何其他套接字函数时,您都应该只使用该族的地址结构,强制转换为struct sockaddr
。连接(2)调用的工作方式取决于您使用的套接字域(即作为第一个参数传递给的值)。如果您使用的是AF\u INET
协议系列,则connect
需要sockaddr\u in
。如果您使用的是AF\u INET6
协议,那么它需要sockaddr\u in6
,其他协议系列都有自己的地址结构
无论使用哪种协议族,在调用connect
或任何其他套接字函数时,都应仅使用该族的地址结构,强制转换为struct sockaddr