|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
每一个开发团队都对他的发行版做过测试后放出的.那些国际知名的大品牌更是如此。
structsockaddr{
unsignedshortintsa_family;/*addressfamily,AF_xxx*/
charsa_data[14];/*address*/
};
sa_family是地点家属,是“AF_xxx”的情势。常设为“AF_INET”,代表Internet(TCP/IP)地点族。
sa_data是协定地点,由sa_family决意。假如sa_family=AF_INET,则sa_data就是sockaddr_in的sin_addr和sin_port。换句话说,这时候sockaddr能够看成sockaddr_in看。
structsockaddr_in{
shortintsin_family;/*Addressfamily*/
unsignedshortintsin_port;/*Portnumber*/
structin_addrsin_addr;/*Internetaddress*/
unsignedcharsin_zero[8];/*tomakesamesizeasstructsockaddr*/
};
structin_addr{
unsignedlongs_addr;
};
sin_family意义与sa_family同。
sin_port存储端标语(利用收集字节按次)
sin_addr存储IP地点,利用in_addr这个数据布局
sin_zero是为了让sockaddr与sockaddr_in两个数据布局坚持巨细不异而保存的空字节。
在in_addr布局体中,s_addr依照收集字节按次存储IP地点。
sin_zero用来将sockaddr_in布局添补到与structsockaddr一样的长度,能够用bzero()或memset()函数将其置为零。指向sockaddr_in的指针和指向sockaddr的指针能够互相转换,这意味着假如一个函数所需参数范例是sockaddr范例时,你能够在函数挪用的时分将一个指向sockaddr_in的指针转换为指向sockaddr的指针;大概相反
</p>
要多google,因为我不可能,也不可以给你解答所有内容,我只能告诉你一些关键点,甚至我会故意隐瞒答案,因为在寻找答案的过程中。 |
|