gpt4 book ai didi

c - 接受()函数; C中的简单tcp服务器

转载 作者:可可西里 更新时间:2023-11-01 02:36:46 25 4
gpt4 key购买 nike

我正在学习 C 语言的套接字编程并下载了一个简单的 tcp 服务器源文件。我理解这些函数中除第二个参数之外的每一行:

accept(socket_fd, (struct sockaddr *)&client, &length);

bind(socket_fd, (struct sockaddr *)&server, length);

accept + bind 函数是"sys/types.h"& "sys/socket.h"中的典型函数,手册页将其描述为指向结构的指针,但我仍然不明白这是什么真正发生在这里。

有人可以解释一下第二个参数是怎么回事吗?括号、指针和地址符号在同一个表达式中让我感到困惑。

提前致谢!

最佳答案

& 符号本质上意味着“获取值/对象的地址”。 (struct sockaddr *) 是一个强制转换。它告诉编译器您希望将地址视为指向 sockaddr 结构的指针。因此,它告诉编译器可以将 client 视为 sockaddr 结构并将其地址传递给函数。对于 accept 函数,连接套接字的地址将存储在给定结构中。

关于c - 接受()函数; C中的简单tcp服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3323101/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com