2009-11-14 21 views
1

我們所有仍在C語言中進行某種網絡編程(TCP/UDP,DNS或客戶端/服務器)的人都反覆使用一些代碼片段。什麼是經常使用的網絡編程功能/代碼片段?

我們確實使用了一些標準庫,但是我們也經常編寫一些代碼,這些代碼在一個庫中不存在。

是否有一些經常使用的代碼片段的集合。如果沒有,那麼讓我們在這裏建立它

回答

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++; 
    } 
3

W.理查德·斯蒂芬斯寫了這樣的片段的集合:UNIX網絡編程,第1卷,第二版:網絡的API:套接字與XTI

2

這裏是UNIX網絡編程,卷1,第三版源代碼 Here