hostent和in addr結構體

2021-06-08 04:47:56 字數 1174 閱讀 8884

一.hostent資料結構是這樣的: 

struct    hostent ;

typedef uint32_t in_addr_t;

struct in_addr

;這裡是這個資料結構的詳細資料:  

struct hostent:  

h_name – 位址的正式名稱。 

h_aliases – 空位元組-位址的預備名稱的指標。 

h_addrtype –位址型別; 通常是af_inet。  

h_length – 位址的位元長度。 

h_addr_list – 零位元組-主機網路位址指標。網路位元組順序。 

h_addr - h_addr_list中的第一位址。 

gethostbyname() 成 功時返回乙個指向結構體 hostent 的指標,或者 是個空 (null) 指標。

這裡是個例子: 

#include

#include

#include

int main(void)

printf("%s\n",h->h_name);

printf("%d\n",h->h_addr);

struct in_addr *in=;

printf("%s\n",inet_ntoa(*in));

//    printf("ip address : %s\n",inet_ntoa(*((struct in_addr *)h->h_addr)));

return exit_success;

}在使用 gethostbyname() 的時候,你不能用perror() 列印錯誤資訊 (因為 errno 沒有使用),你應該呼叫 herror()。

gethostbyname()返回的 struct hostent 資料。

二.in_addr

struct in_addr ;  

結構體in_addr 用來表示乙個32位的ipv4位址.  

in_addr_t 一般為 32位的unsigned long.  

其中每8位代表乙個ip位址位中的乙個數值.  

例如192.168.3.144記為0xc0a80390,其中 c0 為192 ,a8 為 168, 03 為 3 , 90 為 144  

列印的時候可以呼叫inet_ntoa()函式將其轉換為char *型別.

PN結和FET管

n型半導體 n為negative的字頭,由於電子帶負電荷而得此名 摻入少量雜質磷元素 或銻元素 的矽晶體 或鍺晶體 中,由於半導體原子 如矽原子 被雜質原子取代,磷原子外層的五個外層電子的其中四個與周圍的半導體原子形成共價鍵,多出的乙個電子幾乎不受束縛,較為容易地成為自由電子。於是,n型半導體就成為...

棧和佇列週結

首先棧和佇列都是特殊的線性表,棧是乙個抽象的資料結構,先入後出,理解的話就像我們往桌子上放課本,先放的課本被壓在最底下最後才能拿出來,後放的課本在上面,最先拿出來。而佇列就相反,它是先入先出,顧名思義,就像我們一起排隊買東西,最先排隊的人先買到東西,買到後離開長長隊伍,最先逃離苦海,而最後排隊的人只...

try,catch和finally的作用結果

1.如果程式是從try 塊或者catch 塊中返回時,finally中的 總會執行。而且finally語句在return語句執行之後return返回之前執行的。2.當finally有返回值 return 時,會直接返回。不會再去返回try或者catch中的返回值。3.如果try和catch的retu...