А 正在为在 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/