当前位置: 技术问答>linux和unix
sock编程遇到的一个小小的疑问,麻烦前辈指教!
来源: 互联网 发布时间:2017-02-01
本文导语: 小弟最近在学习网络编程,不小心看到了这么几句代码: struct hostent *host; struct sockaddr_in serve_addr; serve_addr.sin_addr = *((struct in_addr *)host->h_addr); 前面两句结构体变量到声明我看得懂是什么意思,然后第三句 “ *((...
小弟最近在学习网络编程,不小心看到了这么几句代码:
struct hostent *host;
struct sockaddr_in serve_addr;
serve_addr.sin_addr = *((struct in_addr *)host->h_addr);
前面两句结构体变量到声明我看得懂是什么意思,然后第三句 “ *((struct in_addr *)host->h_addr);” 我不能理解阿,我知道h_addr 是 ip地址,那为什么要把它强制转换成in_addr类型到指针,然后在加一个 * 号把内容取出来,然后赋值给sin_addr ???? 麻烦前辈解释解释阿。。。。小弟是初学者,感激不尽!
struct hostent *host;
struct sockaddr_in serve_addr;
serve_addr.sin_addr = *((struct in_addr *)host->h_addr);
前面两句结构体变量到声明我看得懂是什么意思,然后第三句 “ *((struct in_addr *)host->h_addr);” 我不能理解阿,我知道h_addr 是 ip地址,那为什么要把它强制转换成in_addr类型到指针,然后在加一个 * 号把内容取出来,然后赋值给sin_addr ???? 麻烦前辈解释解释阿。。。。小弟是初学者,感激不尽!
|
http://msdn.microsoft.com/en-us/library/windows/desktop/ms738552(v=vs.85).aspx
|
serve_addr.sin_addr = *((struct in_addr *)host->h_addr);
struct in_addr *pAddr = (struct in_addr *)host->h_addr;
serve_addr.sin_addr = *pAddr;
host_h_addr不是sin_addr类型的指针,所以先做个强制转换
struct in_addr *pAddr = (struct in_addr *)host->h_addr;
serve_addr.sin_addr = *pAddr;
host_h_addr不是sin_addr类型的指针,所以先做个强制转换
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。