首页 头条 财经 产业 跨境 时尚 物流 直播 优品 English
首页 / 大众消费 / 正文

sockaddr_in使用sockaddr_in来建立所需的信息

来源:
编辑:电经淘讯
时间:2023-08-31

 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))

头条聚焦更多
经济视界更多

直面短剧恐慌,长视频该开创迷你剧时代

    继短剧场、微剧场双管齐下之后,“...[详细]

拒用“新疆棉”的优衣库,正被加速“平

    近日,优衣库创始人柳井正在接受采访时,...[详细]

热点财经更多
  • CopyRight @ 2013-2024 Reserved CN电商经济网版权所有所涉内容免责声明查阅