捕获原始套接字数据和 rospy

问题描述

我正在开发一个 Python 项目,该项目应该使用 rospy python 模块捕获原始 UDP 包、解码它们并将解码后的数据发布到 ROS 主题中。为了捕获网络包,我使用了 Scapy。

问题是,

为了使用 Scapy 创建原始套接字,我必须使用 sudo 运行我的 py 文件;然而, 为了导入 rospy,我不得用 sudo 运行我的 py 文件。因此,我无法在单个 Python 脚本中导入和使用这两个模块。

出于性能方面的考虑,我不想将这两个脚本分成两个不同的 Python 脚本并使用文件数据库在彼此之间传递数据。

到目前为止,我已经尝试过这个,来自 link :

setcap cap_net_raw=eip /usr/bin/python3.5
setcap cap_net_raw=eip /usr/bin/tcpdump

此后,我可以在没有root权限的情况下使用Scapy,但由于某些原因,ROS安装已损坏,因此这也不是解决方案。

我该如何解决这个问题?有什么建议吗?

我在 Ubuntu 16.04 上使用 Python 3.5

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)