【发布时间】:2013-04-07 07:09:40
【问题描述】:
我正在查看 C 套接字中的 connect() 和 bind() 等函数,并注意到它们采用指向 sockaddr 结构的指针。我一直在阅读并使您的应用程序独立于 AF,使用 sockaddr_storage 结构指针并将其转换为 sockaddr 指针很有用,因为它为更大的地址提供了所有额外空间。
我想知道的是,像connect() 和bind() 这样要求sockaddr 指针的函数如何从指向比预期结构更大的结构的指针访问数据。当然,您将提供的结构的大小传递给它,但是函数用于从指向您已转换为 struct *sockaddr 的更大结构的指针中获取 IP 地址的实际语法是什么?
这可能是因为我来自 OOP 语言,但这似乎有点像 hack 并且有点混乱。
【问题讨论】: