我开始服务器编程。 我有一个问题... 我尝试使一台设备成为多台服务器 所以我对“地址已被使用”问题使用了reuse_addr选项。 但是我想在两个服务器使用相同的地址和相同的端口时显示错误 所以我尝试使用SO_EXCLUSIVEADDRUSE选项 但它返回-1 .. 我应该怎么做
io_service svc;
tcp::acceptor a(svc);
boost::system::error_code ec;
int one = 1;
a.open(tcp::v4(), ec);
a.set_option(tcp::acceptor::reuse_address(true), ec);
int eb = setsockopt(a.native_handle(), SOL_SOCKET, SO_EXCLUSIVEADDRUSE,
(char*)&optval, sizeof(optval));
if (eb < 0) {
std::cout << "errorcode : " << eb;
return true; }
a.bind({ tcp::v4(), port }, ec);
if (ec != 0)
{
std::cout << "Port " << 44000 << " is in use\n";
return true;
}