c - Socket的系统调用Bind In c

标签 c sockets

在一次采访中有人问我为什么需要计算在bind系统调用中绑定(bind)的地址的大小。

bind(sockfd, (struct sockaddr *) &serv_addr,sizeof(serv_addr))

意味着我想知道在绑定(bind)系统调用中使用第三个参数的目的是什么??

最佳答案

因为 sockaddr 结构或多或少充当“派生”结构(如 sockaddr_in)的“基础”结构。它几乎是一种继承机制。

sockaddr 包含可由“派生”结构(如 sockaddr_*)使用的可变长度数据,因此您需要精确“派生”结构的有效大小.

关于c - Socket的系统调用Bind In c,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6184953/

相关文章:

c - Opengl 在 3d 场景问题上绘制 2d 叠加

c - PCRE 和空格

c - 在分配的内存范围之外写入时没有错误

Python ssl 无法使用 TLS1.2 客户端连接到 TLS1.2 服务器

c++ - 使用 Threads c++ 时套接字无法正确打开

读取垃圾内存会破坏程序流程吗?

c - 为什么会出现段错误(核心已转储)?

python - 我可以访问远程机器上的 unix 域套接字吗?

c - 创建1020次后无法创建Socket通信

ios - 托管与 iOS 设备的安全连接