Renci SSH NET:调整终端大小时反映宽度/高度

时间:2017-02-18 21:06:01

标签: c# terminal ssh.net

我目前正在使用SSH.NET进行终端仿真。使用当前列/行创建SshClient和ShellStream正常工作。

但是当我改变终端尺寸的大小(比如Putty)时,我找不到将新的列/行发送到服务器的方法。

我看到的唯一方法是关闭shellstream并创建一个新的shellstream。是否有更好的方式来发送新的"布局"到服务器?

提前致谢: - )

1 个答案:

答案 0 :(得分:0)

经过几天的调查后,我最终在ShellStream.cs中实现了一个新方法:

    /// <summary>
    /// Sends a "window-change" request.
    /// </summary>
    /// <param name="columns">The terminal width in columns.</param>
    /// <param name="rows">The terminal width in rows.</param>
    /// <param name="width">The terminal height in pixels.</param>
    /// <param name="height">The terminal height in pixels.</param>
    public void SendWindowChangeRequest(uint columns, uint rows, uint width, uint height)
    {
        if (_channel == null)
        {
            throw new ObjectDisposedException("ShellStream");
        }
        _channel.SendWindowChangeRequest(columns, rows, width, height);
    }

解决了这个问题。现在我可以调用“SendWindowChangeRequest(...)”并且服务器端shell窗口是最新的: - )

不确定,为什么Renci的实现中缺少此功能。也许还有另一种方式......