C++ ';内特乌恩托亚';未声明的错误

C++ ';内特乌恩托亚';未声明的错误,c++,c,linux,ubuntu-12.04,C++,C,Linux,Ubuntu 12.04,我正在尝试使用inet_ntoa函数 写入以下代码: printf("Got connection from: %s:%d\n", inet_ntoa(cli_addr.sin_addr.s_addr), cli_addr.sin_port); 使用以下工具包括: #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #包括 #包括 #包括 但是,使用g++/gcc,

我正在尝试使用inet_ntoa函数 写入以下代码:

printf("Got connection from: %s:%d\n", inet_ntoa(cli_addr.sin_addr.s_addr), cli_addr.sin_port);
使用以下工具包括:

#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#包括
#包括
#包括
但是,使用g++/gcc,我总是会得到错误:

错误:“inet_ntoa”未在此作用域中声明

如果我对这行进行注释,代码就可以了

在Ubuntu12.04下运行

谁能告诉我我错过了什么


谢谢

man inet\u ntoa
看来,在包含标题之前,您必须定义
\u BSD\u源文件

#define _BSD_SOURCE
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
\define\u BSD\u源
#包括
#包括
#包括

您使用的是哪种编译器?我在g++/gcc 5.1OT上很好地编译了您的代码:
sinu端口
以网络字节顺序出现。您希望将调用包装到
ntoh()
中,以使用(更可读的;-)主机字节顺序打印端口号@shrikeI正在使用Centos7,不必定义_BSD_SOURCE-看起来我只是缺少了arpa/inet.h:)