我开始学习C / C ++网络编程,但一开始却陷入困境。我在编程方面有点菜鸟,但我了解基本知识,例如C库,指针,结构等。我找不到关于与addrinfo / sockaddr_in结构相关的某些详细信息的解释清楚的信息。大量类似的结构很烦人,在线教程也很混乱。作为附加信息,我可以说我正在使用Visual c ++ 2010 express在Windows上进行编程。我不知道我已经知道的信息是否正确。我认为它是这样工作的:


sockaddr_in不再需要在任何地方手动创建和填充,因为使用我在addrinfo中手动定义的信息,“ getaddrinfo”函数为我完成了此任务,因此addrinfo可以代替所有sockaddr_in。
似乎HOSTENT结构没有用,因为它在“ gethostbyname”函数中使用,并且由于“ getaddrinfo”而被弃用


现在一些问题:

引入“ addrinfo”如何改变常用功能的使用方式-现在任何功能都接受其他参数(例如addrinfo而不是sockaddr_in)作为它们的一部分吗?

似乎没有addrinfo的旧式编程更适合初学者,我想我现在只想使用sockaddr_in,因为我只学习并想做简单的东西,这是个好主意吗?

请告诉我我的理解是否正确,并尽可能回答我的问题,欢迎提出评论或解释。

编辑
由于我没有得到直接的答案来解释我不了解的事情,所以我一直在努力弄清楚它是如何工作的,我可能对这些事情的理解也更多了。

我现在最想知道的是不赞成使用“ gethostbyname”之后HOSTENT结构的角色,因为“ getaddrinfo”功能使它无用了。我想知道细节,因为我想知道我在代码的每个部分都在做什么。

最佳答案

不幸的是,我不会回答您的问题,但是,我完全建议您阅读《比伊指南》,这对以欢乐的方式起步是一个很好的参考:http://beej.us/guide/bgnet/

关于c++ - 网络编程基础,需要帮助来了解addrinfo/sockaddr_in的结构用法等,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18174279/

10-11 19:36