我在绑定(bind)套接字时遇到问题,并且在以用户身份运行程序时我的权限被拒绝。这行代码会产生错误。
_acceptor = new boost::asio::ip::tcp::acceptor(io, boost::asio::ip::tcp::endpoint(boost::asio::ip::tcp: :v4(), 服务器端口));
错误是
terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::system::system_error> >'
什么():绑定(bind):权限被拒绝
但是,如果我以 root 身份运行,它工作正常。我试过用
禁用 apparmor 和防火墙sudo service apparmor stop
sudo ufw disable
但我仍然有问题。我错过了一些可能拒绝许可的东西吗? 我真的很想解决这个问题,因为我不喜欢以 root 身份运行我的 IDE 和未经验证的程序。
我正在运行安装了所有更新的 xubuntu 13.10。
最佳答案
在 unix 系统上,第一个 1024 端口仅限于 root 用户,所以如果 serverPort
< 1024 你应该试试 > 1024
关于c++ - Linux拒绝使用boost asio对套接字绑定(bind)的权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20825496/