1

我正在 ubuntu 中开发一个应用程序来通过 QT 远程访问其他系统。两个系统都在运行一些 Qt 应用程序。我想使用 Qt 编程远程检查/更改另一个系统。

我想在远程系统上添加一个按钮(作为退出屏幕),它应该是“仅当系统被远程访问时才启用”,以便我可以使用它来关闭远程访问屏幕。

有没有什么方法可以通过编程来获取远程访问时的状态???

我在论坛上找到了一些解决方案,但它们特别适用于 Windows。我正在寻找 Linux 中的一些解决方案。

请提供建议/链接,以便我可以克服这个问题。

提前致谢

4

1 回答 1

1

如果您使用X11协议的远程显示功能,您可以检查DISPLAY变量的值。对于本地连接,它通常以:0;开头 对于远程连接,它包含显示服务器的主机名。对于通过ssh -X它的连接,它可能是localhost:10并且ssh也是设置SSH_CLIENTSSH_CONNECTION环境变量。

否则,您应该更好地为您定义什么是远程访问(即更多地解释您的应用程序)。您的 Qt 应用程序也可能是一些 TCP/IP 服务器。也许getpeername(2)系统调用可能是相关的。

如果您只是对流入您的盒子(独立于特定应用程序)的远程连接感兴趣,您可以阅读(例如使用popen)命令的输出netstat -a -n或使用某个/proc/net/目录。

于 2012-09-25T05:15:03.227 回答