我想在 proto3 消息中使用 IP 字段。我應(yīng)該使用 proto3 中的哪種類型來表示相同的。該字段將由 Golang 和 C# 實現(xiàn)使用。我應(yīng)該使用字符串嗎?或者 IPV4 為固定 32,IPV6 為字節(jié)?message xyz { string ip_addr = 1;}或者message xyz { oneof ip_addr{ fixed32 v4 = 1; bytes v6 = 2;}如果是第二個,那么如何在 Golang 實現(xiàn)中對其進(jìn)行編碼?比如,我應(yīng)該首先構(gòu)造一個具有有效 IP 地址的字符串,然后將其轉(zhuǎn)換為固定 32 格式,或者怎么樣?
1 回答

繁星coding
TA貢獻(xiàn)1797條經(jīng)驗 獲得超4個贊
如果這里沒有性能限制,我會選擇字符串。
幾乎所有語言都支持從具有標(biāo)準(zhǔn) ipv4 或 ipv6 表示法的字符串中讀取 IP 地址。如果您在固定 32 或字節(jié)字段中使用二進(jìn)制表示形式,則必須找到一種方法將其轉(zhuǎn)換為您使用協(xié)議的每種語言。
您可能還想指定它是否始終必須是 IP 地址,或者是否可以使用 DNS 主機(jī)名。
- 1 回答
- 0 關(guān)注
- 117 瀏覽
添加回答
舉報
0/150
提交
取消