' INET_NTOA'没有声明错误

时间:2016-05-25 11:18:41

标签: 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'未在此范围内声明

如果我对该行发表评论,那么代码就可以了。

在Ubuntu12.04下运行。

有谁能告诉我我错过了什么?

谢谢!

1 个答案:

答案 0 :(得分:4)

man inet_ntoa开始,您必须在包含标题之前定义_BSD_SOURCE

#define _BSD_SOURCE
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>