gpt4 book ai didi

c++ - 打开带有零填充 IP 字符串的 boost 套接字

转载 作者:可可西里 更新时间:2023-11-01 02:54:21 25 4
gpt4 key购买 nike

我正在使用 boost 1.53 并有以下用于打开套接字的代码:

void openConnection(std::string ip, std::string port)
{
tcp::resolver resolver_( m_ioService );
tcp::resolver::query query(boost::asio::ip::tcp::v4(), ip, port);
tcp::resolver::iterator iterator = resolver_.resolve(query);

boost::shared_ptr<tcp::socket> socket_(new tcp::socket(m_ioService));

boost::asio::connect(*socket_, iterator);
m_tcpSocket = socket_;
}

如果我使用 ip = "192.168.2.50"我很好,但如果我使用 "192.168.002.050"我无法打开连接。

有没有办法为这种字符串调整 tcp::resolver::query 对象?

最佳答案

如果 192.168.002.50 确实有效,我会说这是一次失败的八进制解码尝试(这不应该发生)。

否则它似乎是 boost::asio::ip::address_v::from_string 中的一个限制。这将 - 毫无疑问 - 有合理的理由(我没有记住 RFC)。

您始终可以手动解析,并使用采用八位字节的构造函数:

  address_v4(address_v4::bytes_type {192,168,2,50});

关于c++ - 打开带有零填充 IP 字符串的 boost 套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29493154/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com