我們所有仍在C語言中進行某種網絡編程(TCP/UDP,DNS或客戶端/服務器)的人都反覆使用一些代碼片段。什麼是經常使用的網絡編程功能/代碼片段?
我們確實使用了一些標準庫,但是我們也經常編寫一些代碼,這些代碼在一個庫中不存在。
是否有一些經常使用的代碼片段的集合。如果沒有,那麼讓我們在這裏建立它
我們所有仍在C語言中進行某種網絡編程(TCP/UDP,DNS或客戶端/服務器)的人都反覆使用一些代碼片段。什麼是經常使用的網絡編程功能/代碼片段?
我們確實使用了一些標準庫,但是我們也經常編寫一些代碼,這些代碼在一個庫中不存在。
是否有一些經常使用的代碼片段的集合。如果沒有,那麼讓我們在這裏建立它
好問題!
這裏是一個名稱解析功能
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++;
}
W.理查德·斯蒂芬斯寫了這樣的片段的集合:UNIX網絡編程,第1卷,第二版:網絡的API:套接字與XTI
這裏是UNIX網絡編程,卷1,第三版源代碼 Here