【发布时间】:2012-09-07 13:02:32
【问题描述】:
我正在将一些 Windows 代码移植到 Mac。我遇到了一些使用 in_addr 类型的代码,并在此处找到了 Windows 实现的文档:http://msdn.microsoft.com/en-us/library/windows/desktop/ms738571%28v=vs.85%29.aspx
我遇到的具体问题是代码试图访问 in_addr 的 S_un 属性,编译器 (CLang) 抱怨该属性不存在。查看 Mac 实现的定义,我得到了这个(usr/include/netinet/in.h):
struct in_addr {
in_addr_t s_addr;
};
...和in_addr_t定义如下(在usr/include/sys/types.h中):
typedef __uint32_t in_addr_t;
是否有人知道解决此问题的好方法,或者 Mac 上是否存在与 Windows 实现更紧密相关的 IPv4 地址表示?
【问题讨论】:
-
代码访问的究竟是什么?因为
S_un只是一个联合。如果它正在访问S_un.S_addr,则与仅访问s_addr相同。否则您需要自己提取数据。
标签: c++ windows macos ip-address