首页 聚焦 要闻 产经 点评 数据 股市 公司 IPO |  设为首页
您的位置:首页 / 财经导读 / 正文
sockaddr_in使用sockaddr_in来建立所需的信息
编辑:
2022-01-07

SOCKADDR_IN是对于IPv4,并为sockaddr_in6的IPv6的。这种混乱对我来说是SOCKADDR和SOCKADDR_IN之间的差异。sockaddr_in 是internet环境下套接字的地址形式。所以在网络编程中我们会对sockaddr_in结构体进行操作。使用sockaddr_in来建立所需的信息,最后使用类型转化就可以了。

sockaddr_in把14个字节拆分成sin_port, sin_addr和sin_zero分别表示端口、ip地址。sin_zero用来填充字节使sockaddr_in和sockaddr保持一样大小。
      sockaddr_in这个结构也不复杂,除了一开始的2个字节表示sin_family,然后是2个字节的变量sin_port表示端口,接着是4个字节的变量sin_addr表示IP地址,最后是8个字节变量sin_zero填充尾部,用来与结构sockaddr对齐。
填值的时候使用sockaddr_in结构,而作为函数(如socket, listen, bind等)的参数传入的时候转换成sockaddr结构就行了,毕竟都是16个字符长。
      通常的用法是: 
  int   sockfd; 
  struct   sockaddr_in   my_addr; 
  sockfd   =   socket(AF_INET,   SOCK_STREAM,   0);    
  my_addr.sin_family   =   AF_INET;    
  my_addr.sin_port   =   htons(MYPORT);    
  my_addr.sin_addr.s_addr   =   inet_addr("192.168.0.1"); 
  bzero(&(my_addr.sin_zero),   8);    
  bind(sockfd,   (struct   sockaddr   *)&my_addr,   sizeof(struct   sockaddr))

免责声明:本文仅代表作者个人观点,与本网无关。其原创性以及文中陈述文字和内容未经本站证实, 对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者 仅作参考,并请自行核实相关内容。当事人(单位)如有异议,请参阅《删帖说明》办理。

0
(查看全部0条评论)请遵守国家新闻相关法规,文明上网评论!
    
验证码:    
民银聚焦更多
焦点要闻更多

平年二月是什么意思呢?和现在简单以数字记年份不同

阅读(1)  评论(0)

驻冈比亚大使到访冈比亚大学 推动援冈农业组开展农业

阅读(2)  评论(0)

抖音电商携手金投赏共建「兴趣内容经营」赛道,引领品

阅读(1)  评论(0)

“世界珠宝番禺造”3D打印+数字渠道广州制造业立市

阅读(1)  评论(0)
财经头条更多
民银点评更多
上市公司更多

CopyRight@2015-2022 中国民银财经网 All Right Reserved

工信备案号:沪ICP备58027263号-1

中国民营财经领域一体化新媒体平台