socket通信中的几个重要结构体定义
生活随笔
收集整理的這篇文章主要介紹了
socket通信中的几个重要结构体定义
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
struct sockaddr {
unsigned short sa_family;//地址類型, AF xxx
char sa_data[14]; //14字節的端口和地址
};struct sockaddr in {
short int sin_family; //地址類型
unsigned short int sin_port;//端口號
struct in addr sin addr;//地址
unsigned char sin zero[8];//為了保持與struct sockaddr一樣的長度。
};struct in addr {
unsigned long s_addr;//地址
;struct hostent {
char *h name;//主機名
char**h_aliases;//主機所有別名構成的字符串數組,同一IP可綁定多個域名。
int h_addrtype;//主機IP地址的類型,例如IPV4 (AF_INET) 還是IPV6.
int h_length;//主機IP地址長度,IPV4地址為4,IPV6地址則為16。
char **h_addr_list;//主機的ip地址,以網絡字節序存儲。
};#define h_addr h_addr_ list[0] /* for backward compatibility */// gethostbyname函數可以利用字符串格式的域名獲得IP網絡字節順序地址。
struct hostent *gethostbyname(const char *name);int inet_aton(const char *cp, struct in_addr *inp);//將一個字符串IP地址轉換為一個32位的網絡字節序IP地址。如果這個函數成功,函數的返回值非零,如果輸入地址不正確則會返回零。使用這個函數并沒有錯誤碼存放在errno中,所以它的值會被忽略。char *inet_ntoa(struct in_addr in);//把網絡字節序IP地址轉換成字符串的IP地址。in_addr_t inet_addr(const char *cp);1024-65535
總結
以上是生活随笔為你收集整理的socket通信中的几个重要结构体定义的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 简单的socket通信实现
- 下一篇: 实现strcmp库函数的功能