我正在 ubuntu 中开发一个应用程序以通过 QT 远程访问其他系统。两个系统都在运行一些 Qt 应用程序。我想使用 Qt 编程远程检查/更改另一个系统。
我想在远程系统上添加一个按钮(作为退出屏幕),它应该是“仅当系统被远程访问时才启用”,这样我就可以用它来关闭远程访问屏幕。
有什么方法可以通过编程获取远程访问时的状态???
我在论坛上找到了一些解决方案,但它们特别适用于 Windows。 我正在寻找 Linux 中的一些解决方案。
请提供建议/链接,以便我可以解决这个问题。
提前致谢
最佳答案
如果您正在使用 X11 的远程显示功能协议(protocol),您可以检查 DISPLAY
变量的值。对于本地连接,通常以:0
开头;对于远程连接,它包含显示服务器的主机名。对于通过 ssh -X
的连接,它可以是 localhost:10
并且 ssh
也在设置 SSH_CLIENT
和 SSH_CONNECTION
环境变量。
否则,您应该更好地定义什么是您的远程访问(即更多地解释您的应用程序)。您的 Qt 应用程序也可能是例如一些 TCP/IP 服务器。也许是 getpeername(2)系统调用可能是相关的。
如果您只是对哪些远程连接流入您的盒子感兴趣(独立于特定应用程序),您可以阅读(例如使用 popen
)命令 netstat -a -n 的输出
或使用一些 /proc/net/
目录。
关于c++ - Qt::如何在Linux中识别/检测系统是否被其他系统远程访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12576334/