socket位址說明及轉換函式

2021-05-26 11:06:52 字數 1271 閱讀 2513

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 ...