一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

sockaddr與sockaddr

 fym0121 2010-10-13
struct sockaddr 是一個通用地址結(jié)構(gòu),這是為了統(tǒng)一地址結(jié)構(gòu)的表示方法,統(tǒng)一接口函數(shù),使不同的地址結(jié)構(gòu)可以被bind() , connect() 等函數(shù)調(diào)用;struct sockaddr_in中的in 表示internet,就是網(wǎng)絡地址,這只是我們比較常用的地址結(jié)構(gòu),屬于AF_INET地址族,他非常的常用,以至于我們都開始討論它與 struct sockaddr通用地址結(jié)構(gòu)的區(qū)別。另外還有struct sockaddr_un 地址結(jié)構(gòu),剩下的地址結(jié)構(gòu)我就不知道了。我們可以認為 struct sockaddr_in 和 struct sockaddr_un 是 struct sockaddr 的子集。
 
struct sockaddr {
unsigned short sa_family; /* address family, AF_xxx */
char sa_data[14]; /* 14 bytes of protocol address */
};

里的sa_data里的IP地址取出來,折騰半天還是失敗了。在CSDN上發(fā)現(xiàn)2003年時曾有人跟我一樣傻 哈哈

struct sockaddr {
unsigned short sa_family; /* address family, AF_xxx */
char sa_data[14]; /* 14 bytes of protocol address */
};
sa_family是地址家族,一般都是“AF_xxx”的形式。好像通常大多用的是都是AF_INET。
sa_data是14字節(jié)協(xié)議地址。
此數(shù)據(jù)結(jié)構(gòu)用做bind、connect、recvfrom、sendto等函數(shù)的參數(shù),指明地址信息。
但一般編程中并不直接針對此數(shù)據(jù)結(jié)構(gòu)操作,而是使用另一個與sockaddr等價的數(shù)據(jù)結(jié)構(gòu)
sockaddr_in(在netinet/in.h中定義):
struct sockaddr_in {
short int sin_family; /* Address family */
unsigned short int sin_port; /* Port number */
struct in_addr sin_addr; /* Internet address */
unsigned char sin_zero[8]; /* Same size as struct sockaddr */
};
struct in_addr {
unsigned long s_addr;
};
typedef struct in_addr {
union {
struct{
unsigned char s_b1,
s_b2,
s_b3,
s_b4;
} S_un_b;
struct {
unsigned short s_w1,
s_w2;
} S_un_w;
unsigned long S_addr;
} S_un;
} IN_ADDR;
sin_family指代協(xié)議族,在socket編程中只能是AF_INET
sin_port存儲端口號(使用網(wǎng)絡字節(jié)順序)
sin_addr存儲IP地址,使用in_addr這個數(shù)據(jù)結(jié)構(gòu)
sin_zero是為了讓sockaddr與sockaddr_in兩個數(shù)據(jù)結(jié)構(gòu)保持大小相同而保留的空字節(jié)。
s_addr按照網(wǎng)絡字節(jié)順序存儲IP地址
sockaddr_in和sockaddr是并列的結(jié)構(gòu),指向sockaddr_in的結(jié)構(gòu)體的指針也可以指向
sockadd的結(jié)構(gòu)體,并代替它。也就是說,你可以使用sockaddr_in建立你所需要的信息,
在最后用進行類型轉(zhuǎn)換就可以了bzero((char*)&mysock,sizeof(mysock));//初始化
mysock結(jié)構(gòu)體名
mysock.sa_family=AF_INET;
mysock.sin_addr.s_addr=inet_addr("192.168.0.1");
……
等到要做轉(zhuǎn)換的時候用:
(struct sockaddr*)mysock

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    色婷婷国产熟妇人妻露脸| 日韩精品中文字幕在线视频| 福利新区一区二区人口| 一级片二级片欧美日韩| 大香蕉精品视频一区二区| 欧美日韩欧美国产另类| 正在播放玩弄漂亮少妇高潮| 初尝人妻少妇中文字幕在线| 色鬼综合久久鬼色88| 国产亚洲成av人在线观看 | 中文字幕在线五月婷婷| 国产精品丝袜美腿一区二区| 日本加勒比中文在线观看| 亚洲av又爽又色又色| 日韩av欧美中文字幕| 日韩一区二区三区四区乱码视频| 亚洲性生活一区二区三区| 国产亚洲视频香蕉一区| 久久精品国产一区久久久| 一区二区三区免费公开| 91精品视频免费播放| 久草视频在线视频在线观看| 国产亚洲精品久久99| 人妻偷人精品一区二区三区不卡| 中文字幕av诱惑一区二区| 亚洲精品国产主播一区| 国产不卡在线免费观看视频| 亚洲一区二区三区国产| 中文字幕日韩一区二区不卡| 国产又粗又猛又长又黄视频| 高清一区二区三区不卡免费| 国产一区日韩二区欧美| 中日韩美一级特黄大片| 久久一区内射污污内射亚洲| 国产精品亚洲精品亚洲| 四季精品人妻av一区二区三区| 免费亚洲黄色在线观看| 久久永久免费一区二区| 午夜福利黄片免费观看| 亚洲中文字幕视频在线播放 | 欧美日韩亚洲巨色人妻|