connect(2)调用是否使用了完整的结构sockaddr\u in,或者只需要结构in\u addr即可?

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)调用的工作方式取决于您使用的套接字域(即作为第一个参数传递给的值)

我很好奇,因为connect(2)的手册页很短,它需要一个结构sockaddr*,通常是强制转换的。

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