如何在c中使用gethostbyname

时间:2011-11-29 22:30:34

标签: c sockets tcp gethostbyname

我正在尝试使用gethostbyname函数,但我的代码是:

int handleTCP(char *hostname, char* portNo){

    struct hostent *hp = gethostbyname(hostname);

    ...

}

继续回归:

21: warning: initialization makes pointer from integer without a cast

有谁知道我的语法有什么问题?

感谢

2 个答案:

答案 0 :(得分:3)

你忘了#include <netdb.h>。因为您没有包含此文件,所以您将遇到“default int”规则。基本上,在C中,如果函数没有原型,则假定为:

int function_name();换句话说“返回一个int,接受未知数量的参数”。

正确地声明函数原型(在这种情况下通过包含标题)将避免这种情况。

答案 1 :(得分:0)

我认为您忘记包含netdb.h头文件,因此编译器对gethostbyname函数一无所知,并假设它返回整数。然后它抱怨,因为在这种情况下你会将整数转换为指针。您需要包含一个标头,以便为编译器提供正确的类型信息。