UDP绑定调用绑定到随机端口

时间:2012-08-07 15:46:41

标签: android sockets android-ndk udp boost-asio

以下代码用于将套接字绑定到端口。指定的端口已绑定到另一个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;

由于

1 个答案:

答案 0 :(得分:1)

我建议您检查每个操作的错误代码,而不仅仅是其中一些操作。您几乎肯定会发现bind()已完全失败,因此当您进行发送或接收时,会自动完成随机绑定。