hostent *phost=gethostbyname("");
char* localIP=inet_ntoa(*(struct in_addr*)*phost->h_addr_list
如上所述:疑问在inet_ntoa(*(struct in_addr*)*phost->h_addr_list该怎么理解,有高手可以剖析一下吗,小弟感激不尽

解决方案 »

  1.   

    phost->h_addr_list是一个指针数组,数组中每个元素都是in_addr型指针,*phost->h_addr_list就是取数组中的第1个元素,因为hostent结构支持多种地址类型,所以其定义的h_addr_list是char**型,*phost->h_addr_list就是char*型,所以需要强制转换为in_addr*型,再用*号取里面的数据就是inet_ntoa函数要求的in_addr型参数了。
      

  2.   

    首先:ip地址 在网络里面 由于不同网络类型的存在 还有不同的计算机 。ip地址解释成char后 会 不同。为了统一网络ip地址在不同类型pc机上的表现,必须 将本地ip地址转换成网络地址。同理,在你接受到一个数据包后,需要将那个网络地址 转换成 本机可识别的ip地址 格式。n 代表网络 to 代表转换 a代表本机。
      

  3.   

    祥见 tcp/ip 祥解 第一卷