網路程式設計基礎 入門準備

2021-05-02 08:43:01 字數 1947 閱讀 8906

1.位元組序

#include

定義函式 unsigned short int htons(unsigned short int hostshort);

函式說明 htons()用來將引數指定的16位hostshort轉換成網路字元順序。

返回值 返回對應的網路字元順序。

#include

定義函式 unsigned long int htonl(unsigned long int hostlong);

函式說明 htonl()用來將引數指定的32位hostlong轉換成網路字元順序。

返回值 返回對應的網路字元順序。

#include

定義函式 unsigned long int ntohl(unsigned long int netlong);

函式說明 ntohl()用來將引數指定的32位netlong轉換成主機字元順序。

返回值 返回對應的主機字元順序。

#include

定義函式 unsigned short int ntohs(unsigned short int netshort);

函式說明 ntohs()用來將引數指定的16位netshort轉換成主機字元順序。

返回值 返回對應的主機順序。

2.位址格式

#include

struct in_addr

printf("address:%x/n",addr_in);

if(inet_ntop(af_inet,&addr_n,addr_p,sizeof(addr_p))!=1)

printf("address:%s/n",addr_p);

return 0;

}4.獲得主機資訊

一台主機有許多和網路有關的資訊,例如主機名名稱,ip位址等。linux使用如下函式得到這些資訊。

#include

struct hostent* gethostent();

#include

struct hostent

printf("%s/n",host->h_hame);//列印主機名

for(i=0;host->h_aliases[i]!=null;i++)

if(host->h_addrtype==af_inet)//列印位址型別

printf("af_inet/n");

else

printf("unix_inet/n");

printf("%d/n",host->h_length);//列印位址長度

for(i=0;host->h_addr_list[i]!=null;i++)//列印主機ip位址

printf("%s/n",inet_ntop(host->h_addrtype,host->h_addr_list[i],addr_p,net_addr));

return 0;

}5.位址對映

linux環境下提供了乙個函式,根據使用者指定的伺服器網域名稱和服務名稱得到伺服器的ip位址和埠號。並將其填寫到乙個sockaddr_in位址結構中。該函式內部訪問量dns伺服器。

#include

#include

int getaddrinfo(const char * restrict host,const char * restrict  service,const struct addrinfo * restrict hint ,struct addrinfo ** restrict res);

該函式的前兩個引數分別表示需要訪問的主機名和服務的名稱(這兩個名稱要都已經在dns伺服器中註冊)。第三個引數表示乙個過濾位址模板,通常情況下不過濾任何ip位址,因此置為null。

第四個引數表示乙個位址資訊結構的列表。該列表列出了所有可用的符合條件的位址結構,使用者可以從中任選乙個作為通訊的位址。

網路程式設計基礎 入門

1.位元組序 include 定義函式 unsigned short int htons unsigned short int hostshort 函式說明 htons 用來將引數指定的16位hostshort轉換成網路字元順序。返回值 返回對應的網路字元順序。include 定義函式 unsign...

linux unix網路程式設計 入門基礎

在網路中用來描述計算機中不同程式與其他電腦程式通訊的方式。為了區分不同應用程式的程序和連線,需要使用應用程式與tcp ip協議互動的套接字埠。主要用到三個引數 通訊的目的ip位址 使用的傳輸協議 tcp或udp 和使用的埠號。1.套接字相關的資料型別 套接字程式設計是,通常使用sockaddr和so...

網路程式設計入門

網路程式設計本質上要做的事情就是交流,我們先來分析一下人與人交流,見上圖,我們發現人與人的通訊是分層結構的,這裡以乙個人對另乙個人說 hello world!為例。1 乙個人說了 hello world!後它就是乙個資訊,這個是資訊首先可以直接說出來,我們也可以使用暗號來代替。這就是說資訊可以選擇明...