我开始学习 C/C++ 网络编程,但我一开始就卡住了。我在编程方面有点菜鸟,但我了解 C 库、指针、结构等基本知识。我找不到有关 addrinfo / sockaddr_in 结构的一些详细信息的很好解释的信息。类似结构的数量很烦人,在线教程也很混乱。作为附加信息,我可以告诉我我正在使用 Visual c++ 2010 express 在 Windows 上编程。我不知道我已经知道的信息是否正确。我认为它是这样工作的:
- sockaddr_in 不再需要在任何地方手动创建和填充,因为“getaddrinfo”函数为我完成了这项工作,使用我在 addrinfo 中手动定义的信息,所以 addrinfo 是替换所有 sockaddr_in 的东西。
- 似乎 HOSTENT 结构没用,因为它在“gethostbyname”函数中使用,并且由于“getaddrinfo”而被弃用
现在有几个问题:
引入“addrinfo”如何改变常用函数的使用 - 现在有没有任何函数采用其他参数,例如 addrinfo 而不是 sockaddr_in 作为它们的一部分?
似乎没有 addrinfo 的旧式编程对初学者更友好,我想我现在只想使用 sockaddr_in 因为我只学习并想做简单的东西,这是个好主意吗?
请告诉我我的理解是否正确,并在可能的情况下回答我的问题,欢迎评论或解释。
编辑 因为我没有得到直接的答案来解释我不明白的事情,所以我一直在试图弄清楚它是如何工作的,我可能对这些事情有了更多的了解。
我现在最想知道的是在“gethostbyname”被弃用后HOSTENT结构的角色,因为“getaddrinfo”函数使它无用。我想知道细节,因为我想知道我在代码的每一部分都在做什么。