我想使用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下运行。
有谁能告诉我我错过了什么?
谢谢!
答案 0 :(得分:4)
从man inet_ntoa
开始,您必须在包含标题之前定义_BSD_SOURCE
:
#define _BSD_SOURCE
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>