我正在尝试使用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下运行的。
有人能告诉我错过了什么吗?
谢谢!
sin_port
以网络字节顺序出现。您需要将调用包装到ntoh()
中,以使用(更易读的;-)主机字节顺序打印端口号。 - alk