什么是常用的网络编程功能/代码片段?

时间:2009-11-14 13:06:40

标签: c linux network-programming

我们所有仍然在C中进行某种网络编程(TCP / UDP,DNS或客户端/服务器)的人都反复使用一些代码片段。

我们确实使用了一些标准库,但是我们也经常编写一些代码,而这些代码并不存在于一个库中。

是否有经常使用的此类代码段的集合。如果没有,那么让我们在这里建立它。

3 个答案:

答案 0 :(得分:3)

好问题!

这是名称解析功能

    struct hostent {
        char *h_name; // main name
        char **h_aliases; // alternative names (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++;
    }

答案 1 :(得分:3)

W上。 Richard Stephens写了一系列这样的片段: UNIX网络编程,第1卷,第2版:网络API:套接字和XTI

答案 2 :(得分:2)

这是UNIX网络编程,第1卷,第3版源代码 Here