亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Linux Shell > 正文

Linux C中sockaddr和sockaddr_in的區別

2020-07-27 18:53:24
字體:
來源:轉載
供稿:網友

Linux C中sockaddr和sockaddr_in的區別

struct sockaddr和struct sockaddr_in這兩個結構體用來處理網絡通信的地址。

在各種系統調用或者函數中,只要和網絡地址打交道,就得用到這兩個結構體。

網絡中的地址包含3個方面的屬性:

1 地址類型: ipv4還是ipv6
2 ip地址
3 端口

相應的,頭文件有如下定義:

include <netinet/in.h>  struct sockaddr {   unsigned short  sa_family;  // 2 bytes address family, AF_xxx   char       sa_data[14];   // 14 bytes of protocol address };  // IPv4 AF_INET sockets:  struct sockaddr_in {   short      sin_family;    // 2 bytes e.g. AF_INET, AF_INET6   unsigned short  sin_port;  // 2 bytes e.g. htons(3490)   struct in_addr  sin_addr;   // 4 bytes see struct in_addr, below   char       sin_zero[8];   // 8 bytes zero this if you want to };  struct in_addr {   unsigned long s_addr;     // 4 bytes load with inet_pton() }; 

注釋中標明了屬性的含義及其字節大小,這兩個結構體一樣大,都是16個字節,而且都有family屬性,不同的是:

sockaddr用其余14個字節來表示sa_data,而sockaddr_in把14個字節拆分成sin_port, sin_addr和sin_zero分別表示端口、ip地址。sin_zero用來填充字節使sockaddr_in和sockaddr保持一樣大小。

sockaddr和sockaddr_in包含的數據都是一樣的,但他們在使用上有區別:

程序員不應操作sockaddr,sockaddr是給操作系統用的

程序員應使用sockaddr_in來表示地址,sockaddr_in區分了地址和端口,使用更方便。 

一般的用法為:

程序員把類型、ip地址、端口填充sockaddr_in結構體,然后強制轉換成sockaddr,作為參數傳遞給系統調用函數

網絡編程中一段典型的代碼為:

int sockfd; struct sockaddr_in servaddr;  sockfd = Socket(AF_INET, SOCK_STREAM, 0);  /* 填充struct sockaddr_in */ bzero(&servaddr, sizeof(servaddr)); servaddr.sin_family = AF_INET; servaddr.sin_port = htons(SERV_PORT); inet_pton(AF_INET, "127.0.0.1", &servaddr.sin_addr);  /* 強制轉換成struct sockaddr */ connect(sockfd, (struct sockaddr *) &servaddr, sizeof(servaddr));   

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国模精品视频一区二区三区| 亚洲视频在线观看视频| 日韩在线一区二区三区免费视频| 日本高清不卡在线| 国产精品久久久久久婷婷天堂| 国产精品中文字幕久久久| 久久久亚洲国产| 久久综合亚洲社区| 国产欧美一区二区| 在线看日韩av| 久久九九精品99国产精品| 91精品国产777在线观看| 中文字幕国产亚洲| 国产精品第3页| 日韩欧美在线播放| 日韩中文字幕第一页| 午夜精品美女自拍福到在线| 亚洲精品久久久久久久久| 国产成人自拍视频在线观看| 国产精品亚洲视频在线观看| 国产精品久久久久久中文字| 欧美视频免费在线观看| 亚洲美女av电影| 亚洲另类欧美自拍| 亚洲免费一在线| 成人444kkkk在线观看| 国产精品亚洲аv天堂网| 成人性生交大片免费看小说| 亚洲欧美综合另类中字| 国产亚洲视频在线| 国产成人综合精品| 亚洲成人免费在线视频| 国产精品永久免费观看| 亚洲天堂男人天堂女人天堂| 91精品国产高清久久久久久久久| 国产精品99久久久久久白浆小说| 成人免费看片视频| 精品一区二区三区电影| 最近更新的2019中文字幕| 久久免费少妇高潮久久精品99| 免费91在线视频| 欧美体内谢she精2性欧美| 欧美中文字幕视频在线观看| 国产精品免费视频xxxx| 在线视频欧美性高潮| 亚洲精品理论电影| 日韩美女免费线视频| 精品国产一区二区三区四区在线观看| 一区二区三区四区在线观看视频| 伊人成人开心激情综合网| 日韩国产在线播放| 日韩视频在线观看免费| www.日韩av.com| 欧美刺激性大交免费视频| 91影视免费在线观看| 亚洲一区二区久久久| 午夜精品久久久久久99热软件| 久久久久中文字幕| 成人日韩在线电影| 成人两性免费视频| 日韩精品视频在线观看免费| 亚洲偷熟乱区亚洲香蕉av| 国产精品扒开腿爽爽爽视频| **欧美日韩vr在线| 国产精品亚洲视频在线观看| 亚洲大胆人体在线| 日韩中文字幕在线播放| 亚洲精品视频免费| 国产精品自产拍高潮在线观看| 日本久久久久久久| 欧美电影免费观看高清| 久久精品亚洲一区| 美女视频久久黄| 高清欧美性猛交xxxx黑人猛交| 一区二区三区日韩在线| 国产福利成人在线| 日韩欧美亚洲成人| 久久乐国产精品| 狠狠色狠狠色综合日日五| 欧美日本高清视频| 亚洲精品动漫久久久久| 亚洲国产精品一区二区久| 大伊人狠狠躁夜夜躁av一区| 国产精品亚洲综合天堂夜夜| 亚洲欧洲高清在线| 欧美在线一区二区视频| 成人在线视频福利| 国产精品色婷婷视频| 成人亚洲欧美一区二区三区| 成人性生交大片免费看视频直播| 欧美国产日韩免费| 久久久欧美一区二区| 亚洲精品电影网在线观看| 亚洲美女精品成人在线视频| 91中文字幕在线| 日韩视频免费在线观看| 精品日本高清在线播放| 欧美国产一区二区三区| 亚洲一二三在线| 日韩三级影视基地| 精品久久香蕉国产线看观看亚洲| 国产精品自拍小视频| 国产精品美乳在线观看| 日韩欧美在线免费| 555www成人网| 91精品国产综合久久香蕉最新版| 欧美视频在线观看 亚洲欧| 国内伊人久久久久久网站视频| 亚洲xxx视频| 亚洲第一页在线| 日韩欧美a级成人黄色| 亚洲嫩模很污视频| 亚洲欧美另类中文字幕| 欧美黄色成人网| 成人激情视频免费在线| 精品国产网站地址| 日韩中文第一页| 欧美激情亚洲国产| 日韩av最新在线观看| 欧美精品日韩www.p站| 国产精品亚洲视频在线观看| 一本大道亚洲视频| 日韩欧美中文字幕在线观看| 久久久久久久成人| 国外成人免费在线播放| 在线观看亚洲视频| 亚洲国产高清高潮精品美女| 日日骚久久av| 精品国产福利视频| 国产精品视频xxx| 久久精品99久久久久久久久| 欧美性xxxxxx| 国产精品美女在线观看| 国产精品美女主播在线观看纯欲| 亚洲国产日韩欧美在线图片| 成人精品一区二区三区电影黑人| 欧美大尺度在线观看| 欧美高清第一页| 欧美电影免费播放| 欧美日韩免费区域视频在线观看| 黄色91在线观看| 色狠狠av一区二区三区香蕉蜜桃| 中文字幕av一区二区| 91成人福利在线| 成人www视频在线观看| 日韩欧美国产中文字幕| 久久99久久久久久久噜噜| 国产精品网址在线| 日韩欧美黄色动漫| 日韩精品一区二区视频| 欧美夫妻性生活视频| 97视频人免费观看| 国产婷婷色综合av蜜臀av| 亚洲xxxx3d| 97在线视频精品| 久久影视电视剧免费网站清宫辞电视| 亚洲久久久久久久久久| 国产婷婷成人久久av免费高清| 国产欧美一区二区三区久久| 精品福利在线看| 亚洲国语精品自产拍在线观看| 精品国产91久久久久久老师| 日韩女在线观看| 久久精品中文字幕免费mv|