正在实现tcp-connection在Linux下运行的基于ARM的机器人的C++包装器。
这里是我的代码:'return false'不会从函数返回
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....
它是如何发生的?
函数被调用两次,第二次调用result> = 0? – BoBTFish
它肯定会返回,这就是为什么没有“返回false后?”线。但是“聆听...”必须来自另一个函数调用,请检查其余的代码。 –