內(nèi)容簡介:
套接字結(jié)構(gòu)
struct sockaddr_in
{
short int sin_family; //地址類型 AF_XXX(AF_UNIX,AF_INET和AF_NS)
unsigned short int sin_port; //16位端口號
struct in_addr sin_addr; //32位IP地址
char sin_zero[8]; //保留
} //端口號以及 Internet 地址使用的是網(wǎng)絡(luò)字節(jié)順序,需要通過函數(shù) htons 轉(zhuǎn)換
主機(jī)結(jié)構(gòu)
struct hostent
{ char *h_name ; //主機(jī)的正式名稱
char * *h_aliases ; //別名列表
int h_addrtype ; //主機(jī)地址類型:AF_XXX
lnt H_length; //主機(jī)地址長度:4 字節(jié)(32 位)
char * *h_addr_list;//主機(jī) IP 地址列表
}
函數(shù)庫
1. int socket(int domain,int type,int protocol);
函數(shù) socket 創(chuàng)建一個(gè)套接字描述符,如果失敗返回 -1.domain為地址類型AF_XXX,type為套接字類型,SOCK_STREAM(TCP),SOCK_DGRAM (UDP),SOCK_RAW(IP、ICMP);protocol 指定協(xié)議 0為默認(rèn)模式 。
2. int bind(int sockfd,struct sockaddr *hostaddr,int addrlen);
函數(shù)bind將本地地址與套接字綁定在一起,成功返回0,失敗為-1,并設(shè)置全局變量errno為錯(cuò)誤類型
EADDRINUSER。
3. int connect( int sockfd,struct sockaddr *servaddr, int addrlen);
函數(shù)connect與服務(wù)器建立一個(gè)連接,成功返回 0,失敗返回- 1。servaddr 為遠(yuǎn)程服務(wù)器的套接字地址,包括服務(wù)器的 IP 地址和端口號;addrlen 為地址的長度。
4. int accept(int sockfd,struct sockaddr *addr,int *addrlen)
函數(shù)accept從listen的完成連接隊(duì)列中接收一個(gè)連接,如果連接隊(duì)列為空,則該進(jìn)程睡眠。
套接字結(jié)構(gòu)
struct sockaddr_in
{
short int sin_family; //地址類型 AF_XXX(AF_UNIX,AF_INET和AF_NS)
unsigned short int sin_port; //16位端口號
struct in_addr sin_addr; //32位IP地址
char sin_zero[8]; //保留
} //端口號以及 Internet 地址使用的是網(wǎng)絡(luò)字節(jié)順序,需要通過函數(shù) htons 轉(zhuǎn)換
主機(jī)結(jié)構(gòu)
struct hostent
{ char *h_name ; //主機(jī)的正式名稱
char * *h_aliases ; //別名列表
int h_addrtype ; //主機(jī)地址類型:AF_XXX
lnt H_length; //主機(jī)地址長度:4 字節(jié)(32 位)
char * *h_addr_list;//主機(jī) IP 地址列表
}
函數(shù)庫
1. int socket(int domain,int type,int protocol);
函數(shù) socket 創(chuàng)建一個(gè)套接字描述符,如果失敗返回 -1.domain為地址類型AF_XXX,type為套接字類型,SOCK_STREAM(TCP),SOCK_DGRAM (UDP),SOCK_RAW(IP、ICMP);protocol 指定協(xié)議 0為默認(rèn)模式 。
2. int bind(int sockfd,struct sockaddr *hostaddr,int addrlen);
函數(shù)bind將本地地址與套接字綁定在一起,成功返回0,失敗為-1,并設(shè)置全局變量errno為錯(cuò)誤類型
EADDRINUSER。
3. int connect( int sockfd,struct sockaddr *servaddr, int addrlen);
函數(shù)connect與服務(wù)器建立一個(gè)連接,成功返回 0,失敗返回- 1。servaddr 為遠(yuǎn)程服務(wù)器的套接字地址,包括服務(wù)器的 IP 地址和端口號;addrlen 為地址的長度。
4. int accept(int sockfd,struct sockaddr *addr,int *addrlen)
函數(shù)accept從listen的完成連接隊(duì)列中接收一個(gè)連接,如果連接隊(duì)列為空,則該進(jìn)程睡眠。