gpt4 book ai didi

c - sockaddr_in 未声明的标识符

转载 作者:太空狗 更新时间:2023-10-29 16:37:13 26 4
gpt4 key购买 nike

我正在遵循 beej 的网络指南,它进展得非常好,因为我对所有内容都非常了解,而且他解释得很好。但是,当我想测试他向我展示的一些很酷的东西时,它不会起作用! :(

我不确定 sockaddr_in 到底在哪里声明,但也许这里有人会帮助我!

这是我目前所拥有的(测试将字符串形式的 ip 转换为 ip 到 4 字节整数,反之亦然):

#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>

int main(void)
{
sockaddr_in sin;

inet_pton(AF_INET, "192.168.2.1", &sin.in_addr);
char ip[INET_ADDRSTRLEN];
inet_ntop(AF_INET, &sin.in_addr, ip, INET_ADDRSTRLEN);
printf("%s\n", ip);

return 0;
}

再说一次,我完全不知道所有东西在哪里,所以如果这对我来说真的很愚蠢,抱歉!

编辑:我正在使用名为 Mint 的 Linux Debian 发行版,是否有帮助?

最佳答案

The standard说:

The header shall define the sockaddr_in structure

您必须包括 <netinet/in.h>并声明sin像这样:

struct sockaddr_in sin;
^^^^^^

找出为什么需要 struct关键词,看这个C FAQ .长话短说,没有隐含的 typedef在 C 中。

关于c - sockaddr_in 未声明的标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9102453/

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