Linux使用boost asio拒绝对套接字绑定的许可

Rob*_*art 5 c++ sockets linux

我在绑定套接字时遇到问题,在以用户身份运行程序时,我被拒绝了permision.这行代码会产生错误.

_acceptor = new boost::asio::ip::tcp::acceptor(io, boost::asio::ip::tcp::endpoint(boost::asio::ip::tcp::v4(), serverPort)); 错误是

terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::system::system_error> >'
Run Code Online (Sandbox Code Playgroud)

what():bind:权限被拒绝

但是,如果我以root身份运行它可以正常工作.我试过禁用apparmor和防火墙

sudo service apparmor stop
sudo ufw disable
Run Code Online (Sandbox Code Playgroud)

但我仍然有问题.我错过了一些可以否认permision的东西吗?我真的很想解决这个问题,因为我不喜欢以root身份运行我的IDE和未经验证的程序.

我正在运行xubuntu 13.10并安装了所有更新.

rmo*_*njo 14

在unix系统上,第一个1024端口仅限于root用户,因此如果serverPort<1024,则应尝试> 1024