我打算使用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_ntoa
看来,你必须在包含头文件之前定义_BSD_SOURCE
:
#define _BSD_SOURCE #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h>