struct sockaddr
与 struct sockaddr_un
有何不同?
我知道我们在客户端-服务器模块中使用这些结构,将套接字绑定(bind)到套接字地址。我们使用强制转换运算符来接受 struct sockaddr_un
。
我想知道它们有多么不同/相似,以及为什么要使用 cast 运算符?
最佳答案
“struct sockaddr”是一个通用定义。它被任何需要地址的套接字函数使用。
“struct sockaddr_un”(“Unix 套接字”地址)是一种特殊的地址族。
更常见的“struct sockaddr_in”(“Internet 套接字”地址)是另一种特定的地址族。
强制转换允许套接字 API 接受一个公共(public)参数类型,该类型实际上是几种不同的实际类型中的任何一种。
这是一个很好的链接,显示了几个不同的地址族定义:
http://www.cas.mcmaster.ca/~qiao/courses/cs3mh3/tutorials/socket.html
关于c - struct sockaddr_un 与 sockaddr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3689925/