c - struct sockaddr_un 与 sockaddr

标签 c linux sockets struct client-server

struct sockaddrstruct 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/

相关文章:

c# - 如何在 Linux 上使用内置的 Kinect 驱动程序?

java - 有多少人可以连接到ServerSocket?

ios - 发布/临时构建失败但在 Debug模式下工作(ios)

c - C 编译器将 "-DFOO"处理为与 "-DFOO=1"相同的事实上的标准吗?

c - 表达式中括号的奇怪 react

c - pclose 带 NULL 参数

java - 当OutputStream的write写入字节(内部)时,为什么InputStream的read返回int?

c - 内联汇编代码并存储 128 位结果

sql - Oracle OCI 错误 : Segmentation fault (core dumped) when fetching 100000 rows

python - 我如何使用 python 从命令行部署代理