爱编码的Farmer

  • 主页
  • 编程开发
  • 运营维护
  • 随心笔记
  • 留言页面
  • 打赏
爱编码的Farmer
我是Farmer,我为自己代言
  1. 首页
  2. 编程开发
  3. 开发
  4. 正文

php ssh2扩展实现一个交互式的终端---思路

2018年12月30日 5951点热度 1人点赞 3条评论

想实现一个web的终端,最开始用的ssh2这个扩展,但是结果只能用exec执行命令,不能达到我想要的效果,我想要的是交互式的终端,之后又找了一个php的包phpseclib用里面的ssh2协议用得很迷...不知道为什么read总是要等很长一段时间,不知道是不是我的姿势不对,暂时的放弃,然后仔细看了一下官网的ss2扩展文档,发现有一个ssh2_shell命令,于是开始研究,感觉可以达到交互式终端的效果,如果再不行...可能得去实现ssh协议了....贴出代码如下

有一点不足的地方就是不能使用select方法来,本来想用swoole_event_add加入监听的=_=,不过现在这样..大不了开一个进程来处理吧...或者再看看还有没有什么其他不错的方法

$connection = ssh2_connect('localhost', 22);
if (!ssh2_auth_password($connection, 'user', '***')) {
    die('error user');
}

$stdio_stream = ssh2_shell($connection);
stream_set_blocking($stdio_stream, true);
if (pcntl_fork()) {
    while ($char = fgetc(STDIN)) {
        fwrite($stdio_stream, $char);
    }
} else {
    while (true) {
        echo(fread($stdio_stream, 10000));
    }
}
标签: 暂无
最后更新:2018年12月30日

Farmer

不敢说什么

点赞
< 上一篇
下一篇 >

文章评论

  • 阿鑫

    现在怎么样了? :redface: :redface:

    2019年9月28日
    回复
  • ideasource

    现在解决的怎么样了?

    2019年1月9日
    回复
    • Farmer

      @ideasource 还是选择用多进程的方式来处理了

      2019年1月9日
      回复
  • 取消回复

    此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据。

    COPYRIGHT © 2021 icodef.com. ALL RIGHTS RESERVED.

    Theme Kratos Made By Seaton Jiang

    湘ICP备19008073号