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