0

我很好奇,因为 connect(2) 的手册页很短,而且它需要一个 struct sockaddr* ,无论如何它通常都会被强制转换..

4

2 回答 2

3

sockaddr_in甚至in_addr不相似。没有办法。那里不同,因为通常需要不止一个地址。例如,需要一个端口号来建立连接一个 IP 套接字。

于 2012-05-29T18:37:36.897 回答
1

调用的connect(2)工作方式取决于您使用的套接字域(即作为第一个参数传递给 的值socket(2))。如果您使用的是AF_INET协议系列,则connect需要一个sockaddr_in. 如果您正在使用该AF_INET6协议,那么它需要一个sockaddr_in6,其他协议系列有自己的地址结构。

无论您使用哪个协议系列,您都应该只struct sockaddr在调用connect或任何其他套接字函数时使用该系列的地址结构,强制转换为 a 。

于 2012-05-29T18:44:25.363 回答