1. 三種常見結構型別
在套接字程式設計程式設計中,有三種常見的結構型別,它們用來存放socket位址資訊。這三種結構型別分別為struct in_addr、struct sockaddr、struct sockaddr_in,對這三種結構型別說明如下。
struct in_addr ;
函式原型
struct hostent *gethostbyname(const char *name)
函式傳入值
name:網域名稱或主機名
函式傳出值
name:主機的名稱
函式返回值
成功: 返回hostent指標
失敗:null,失敗原因存於h_error中(注意錯誤原因不存於error中)
附加說明
該函式首先在/etc/hosts檔案中查詢是否有匹配的主機名。如果沒有,則根據在網域名稱解析配置檔案
(5)gethostbyname函式舉例
gethostbyname.c源**如下:
#include
#include
#include
#include
#include
#include
int main(int argc, char *argv)
struct hostent *h;
if (argc != 2) { /* error check the command line */
fprintf(stderr,"usage: getip address\n");
return -1;
if ((h=gethostbyname(argv[1])) == null) { /* get the host info */
herror("gethostbyname");
return -1;
printf("host name : %s\n", h->h_name);
printf("ip address : %s\n",inet_ntoa(*((struct in_addr *)h->h_addr)));
return 0;
編譯 gcc gethostbyname.c -o gethostbyname。
執行./gethostbyname www.sina.com,執行結果如下:
host name : libra.sina.com.cn
ip address : 202.108.33.83
摘錄自《深入淺出linux工具與程式設計》
socket結構和幾個IP位址轉換函式
通用的結構體 struct sockaddr s un b struct s un w unsigned long s addr s un in addr 某些函式呼叫時的引數必須是指向通用結構體的指標,到時乙個強制轉換即可 in addr t inet addr const char cp in ...
socket結構和幾個IP位址轉換函式
通用的結構體 struct sockaddr 程式設計時常用的 struct sockaddr in 其中struct in addr typedef struct in addr s un b struct s un w unsigned long s addr s un in addr 某些函式...
socket結構和幾個IP位址轉換函式
通用的結構體 struct sockaddr s un b struct s un w unsigned long s addr s un in addr 某些函式呼叫時的引數必須是指向通用結構體的指標,到時乙個強制轉換即可 in addr t inet addr const char cp in ...