如何在c ++中存储IP地址?

时间:2011-09-21 10:39:41

标签: .net c++ windows visual-studio-2008

我正在创建一个p2p c ++库,我打算维护一个成员链接列表(它们的IP地址和通信端口),每个成员都相同。我应该使用什么C ++数据类型来存储IP地址? string,long int?这样我以后就可以轻松地将它们用于UDP通信,可能使用sendto和recvfrom例程。

4 个答案:

答案 0 :(得分:2)

IPv4是32位,所以长就足够了。

IPv6是128位,因此如果要与该协议兼容,则需要更大的类型。

无论如何,我会选择一个std::string对象,所以无论你使用什么协议都没问题。

答案 1 :(得分:1)

如果您使用的是IPV4,请使用填充MAKEIPADDRESS宏的长

答案 2 :(得分:1)

定义新的数据类型。您可以从以前的尝试中获得灵感:

依此类推。

答案 3 :(得分:0)

在Windows上,您应该使用SOCKADDR_STORAGE来存储地址。不要忘记boost和Java只是Windows基础库顶部的额外实现,您也可以在C ++中使用Windows API。 (我不确定.Net。)