sockaddr_in未声明的标识符

我跟随beej的网络指南,它一直很好,因为我对一切都很了解,他解释得很好。 然而,当我想测试他向我展示的一些很酷的东西时,它将无法正常工作! 🙁

我不确定sockaddr_in的确切位置,但也许有人在这里帮助我!

这是我到目前为止(测试将字符串forms的ip转换为ip到4字节的积分,反之亦然):

#include  #include  #include  #include  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发行版,如果它有帮助吗?

标准说:

标题应定义sockaddr_in结构

你必须包括并像这样声明sin

 struct sockaddr_in sin; ^^^^^^ 

要找出您需要struct关键字的原因,请参阅此C FAQ 。 长话短说,C中没有隐式typedef

根据ip(7)手册页,您还需要

  #include  #include  #include