c++ - 'return false' 不从函数返回

标签 c++ network-programming

А 正在为在 Linux 下运行的基于 ARM 的机器人实现 tcp-connection C++ 包装器。
这是我的代码:

bool tcp_connection::wait_connection(int port)
{
  is_server = true;

  if (!create_socket())
    return false;

  local_addr.sin_port = htons(port);
  const int result = bind(sockfd, (struct sockaddr *) &local_addr, sizeof(local_addr));
  if (result < 0)
  {
    std::cout << "tcp_connection.cpp: Error on binding '" << strerror(errno) << "'" << std::endl;
    std::cout << "return false" << std::endl;
    return false;
    std::cout << "after return false???" << std::endl;
  }

  std::cout << "listening...." << std::endl;
  .....
  return true;
}

这是我的输出:

tcp_connection.cpp: Error on binding 'Address already in use'
return false
listening....

这怎么可能发生?

最佳答案

它回来了。如果不是,您的输出将是:

tcp_connection.cpp: Error on binding 'Address already in use'
return false
after return false???
listening....

很可能是 listening...打印来自对 wait_connection() 的后续调用if (result < 0)在哪里不采取分支。

关于c++ - 'return false' 不从函数返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19604925/

相关文章:

c++ - 将着色器与 directx 11 相结合

c++ - 无法转换某些类,但其他类可以。 C++

networking - 自定义协议(protocol)的应用程序数据是否需要校验和?

android - 如何在android中的特定时间安排长时间运行的网络任务?

c - 在 header 结构之后访问数据

c++ - 如何在旧版驱动程序中使用 PE header 进行用户修改后获取原始文件类型

c++ - 通过其构造函数将依赖项传递给包装器对象

c++ - 具有两个原子的自旋锁的最小限制内存排序

c# - 套接字监听器同时进行多个 AcceptAsync 调用

network-programming - golang 提供 htonl/htons 吗?