以下代码用于将套接字绑定到端口。指定的端口已绑定到另一个UDP套接字。如果端口已在使用中,我发现套接字绑定到随机端口,否则它将绑定到绑定调用中的指定端口。这是'bind'的正确行为吗?在Android平台上使用ASIO代码
asio::error_code errorCode;
mSocket.open(address.is_v6() ? asio::ip::udp::v6() : asio::ip::udp::v4(), errorCode);
if(!errorCode)
{
mSocket.set_option(asio::ip::udp::socket::reuse_address(true));
mSocket.bind(asio::ip::udp::endpoint(address, port), errorCode);
}
return errorCode;
由于
答案 0 :(得分:1)
我建议您检查每个操作的错误代码,而不仅仅是其中一些操作。您几乎肯定会发现bind()已完全失败,因此当您进行发送或接收时,会自动完成随机绑定。