开发者

Which header files are necessary to run this code snippet?

It's from here,but fails when compiling:

int main(int argc, char **argv)
{
    struct hostent {
        char *h_name; // main name
        char **h_aliases; // alternative na开发者_JAVA技巧mes (aliases)
        int h_addrtype; // address type (usually AF_INET)
        int h_length; // length of address (in octets)
        char **h_addr_list; // alternate addresses (in Network Byte Order)
    };
    #define h_addr h_addr_list[0] // First address of h_addr_list.


    struct hostent *info_stackoverflow;
    int i = 0;
    info_stackoverflow = gethostbyname( "www.stackoverflow.com" );
    printf("The IP address of %s is %s", 
           info_stackoverflow->h_name, 
           inet_ntoa( * ((struct in_addr *)info_stackoverflow->h_addr )));
    /* aliases */
    while( *(pc_ip->h_aliases + i) != NULL )
    {
        printf("\n\tAlias: %s", *(pc_ip->h_aliases + i) );
        i++;
    }
}


#include <stdio.h>
#include <winsock.h>

Though struct hostent is already defined by Winsock, so you will want to remove the definition of hostent from your code snippet.

As dmazzoni has noted, pc_ip is not declared in that code. It is being used like a pointer to a hostent structure, so you could probably replace pc_ip with info_stackoverflow.

When you link, you will need to link against ws2_32.lib. At run-time, you'll probably have problems until you add a call to WSAStartup at the beginning of your code, and WSACleanup at the end, before you return from main.


You need these three headers:

#include <stdio.h>
#include <netdb.h>
#include <arpa/inet.h>

You should get rid of your own definition of struct hostent. It's already defined for you in netdb.h, and your definition will conflict.

Tip: try "man gethostbyname" on almost any Unix system; the manual page for most C functions will tell you what header files to include.

This still won't compile, because pc_ip is undefined. You're missing part of your code snippet, I guess.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜