创建 boost::asio::ip::address_v4
creating boost::asio::ip::address_v4
我找不到解释如何创建 boost::asio::ip::address_v4
的合理白皮书
例如:
// how to initialize address_v4 object?
address_v4 addr; // with an IP address?
addr.from_string("192.168.1.100"); // does not work, see bellow
io_service io;
tcp::socket socket(io);
tcp::endpoint remote;
remote.address(addr);
remote.port(21);
// the rest...
根据 boost 文档,构造函数采用 bytes_type
或 unsigned long
。
我是否必须输入由单个位组成的地址,或者是否有一种简单的方法来指定地址?
程序输出:
connecting to: 0.0.0.0
connect: The requested address is not valid in
its context
顺便说一句,有没有比boost网站提供的教程更好的教程?
谢谢。
由于from_string
是一个静态方法,它不会更新addr
的值。
要从点分十进制形式的 IPv4 字符串初始化 addr
,您应该改为使用:
addr = address::from_string("192.168.1.100");
您还可以通过不解析字符串并使用 address_v4
constructor that accepts bytes_type
直接设置地址来加快速度。例如:
address_v4 addr({192, 168, 1, 100});
我找不到解释如何创建 boost::asio::ip::address_v4
例如:
// how to initialize address_v4 object?
address_v4 addr; // with an IP address?
addr.from_string("192.168.1.100"); // does not work, see bellow
io_service io;
tcp::socket socket(io);
tcp::endpoint remote;
remote.address(addr);
remote.port(21);
// the rest...
根据 boost 文档,构造函数采用 bytes_type
或 unsigned long
。
我是否必须输入由单个位组成的地址,或者是否有一种简单的方法来指定地址?
程序输出:
connecting to: 0.0.0.0
connect: The requested address is not valid in its context
顺便说一句,有没有比boost网站提供的教程更好的教程? 谢谢。
由于from_string
是一个静态方法,它不会更新addr
的值。
要从点分十进制形式的 IPv4 字符串初始化 addr
,您应该改为使用:
addr = address::from_string("192.168.1.100");
您还可以通过不解析字符串并使用 address_v4
constructor that accepts bytes_type
直接设置地址来加快速度。例如:
address_v4 addr({192, 168, 1, 100});