- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在自学套接字编程,最近遇到了 getaddrinfo
和 addrinfo
结构。据我了解,结构中的大部分文件都是整数,您可以通过指定宏来使用它们,例如,如果我想在我的 addrinfo
结构中使用 AF_INET
,我将指定 AF_INET
或整数 2(我不确定,它在哪个头文件中声明?)。好吧,我不认为我很理解为什么有一个 sockaddr 和指向另一个 addrinfo 的指针。有人告诉我后者创建了一个链表,但它背后的目的是什么?
最佳答案
好的,主要问题是——“背后的原因是什么?”。原因是,一台主机可以分配给它多个互联网地址。例如,如果您运行“host www.google.com”命令,这将为您提供多个互联网地址,因此多个 addrinfo 链表的要点是保留所有返回的互联网地址,从而允许您正确翻译网络地址和服务。
当您编写应用程序并尝试连接到可能具有多个互联网地址的公共(public)服务器时,这些地址链表将使您能够灵活地连接到适当的接口(interface)。
关于c - ai_next 和 ai_addr 在 addrinfo 结构中的用途,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18565577/
getaddrinfo() 填充 struct addrinfo,其中实际打包地址存储在 struct sockaddr *ai_addr 字段中。 struct sockaddr 的字段 char
我正在自学套接字编程,最近遇到了 getaddrinfo 和 addrinfo 结构。据我了解,结构中的大部分文件都是整数,您可以通过指定宏来使用它们,例如,如果我想在我的 addrinfo 结构中使
我试图在 Mac OS 上通过 ctypes/libc 从 Python 调用 getaddrinfo,以查找域的 IP 地址。 调用似乎成功:未返回错误代码,ai_addrlen 设置为 28,据我
我是一名优秀的程序员,十分优秀!