0

以下代码用于将套接字绑定到端口。指定的端口已经绑定到另一个 UDP 套接字。我发现如果端口已在使用中,则套接字将绑定到随机端口,否则它将绑定到绑定调用中的指定端口。这是“绑定”的正确行为吗?在 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;

谢谢

4

1 回答 1

1

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

于 2012-08-07T21:33:29.613 回答