c++ - Linux拒绝使用boost asio对套接字绑定(bind)的权限

标签 c++ linux sockets

我在绑定(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/

相关文章:

c++ - 为什么不能将 `decltype()` 用于 lambda 的 `std::function<>`?

python - import _tkinter # 如果失败,你的 Python 可能没有在 python 3.8 中配置 Tk 错误

linux - 将子文件夹中的 .gz 文件(递归地)解压到根文件夹中

Linux 命令行....如何从 $ 更改为 #?

javascript - 如何使用tcp套接字将图像从[python客户端]发送到[node.js服务器]?

python:在 OSX 中使用原始套接字

c++ - 无法将参数 'char*(*)[6]' 的 'char***' 转换为 '2' 到 'void prac(int*,char***)'

c++ - 当再次请求相同的 url 时,Qt QNetworkReply readAll 返回空

java - 无法从 python 服务器向 java 客户端发送消息

c++ - 我可以在不修改 QWidget 子类 PIMPL 样式的情况下包装它吗