Renci.SshNet ShellStream似乎正在删除字符

时间:2016-08-08 13:38:25

标签: vb.net ssh streaming

在谷歌之后,我还没有找到符合我确切情况的答案。这可能比您关心的更多信息,但我认为我需要为我的问题设置阶段。我的简单目标是使用串行控制台或ssh读取和命令Cisco IOS设备。从传输中抽象出“业务逻辑”,我正在寻找构建流。对于串行控制台,在创建串口后,我使用了基本流,一切正常。仅供参考,这是让串口流式传输工作的时刻。 If you must use .NET System.IO.Ports.SerialPort添加ssh流(对我来说)研究把我带到Sharps和Renci进行ssh连接。我决定先尝试Renci。下载并编译以获取我的dll(我的项目是在VB.NET中)。连接,创建一个shell流,然后将该流传递给串行流使用的相同功能。一切都有效,除非我做“跑步”。我将终端长度设置为0,因此没有分页符。我确实得到输出,但是当我使用ssh时,捕获中缺少部分。我的理论是串流速度(9600波特),流能够跟上,但是在lan速度(1 gig位)我超出了缓冲区。实际捕获的内容有点不同,但大部分是在同一区域内文本丢失。像“show ip int br”这样的小屏幕抓取效果很好。我已经增加了“CreateShellStream”缓冲区大小而没有任何更改。我开始查看Renci代码,如果我正确理解它,它似乎没有将缓冲区大小传递给任何东西。 思考?

1 个答案:

答案 0 :(得分:0)

我有一个朋友说,我们所有的服务器都是一个例子,我们中的一些人很好,一些很糟糕。我必须落在剑上,成为一个坏榜样。 首先,底线是我的缓冲区,流回调添加到我的缓冲区和我的更高级读取函数解析缓冲区。 我没有用synclock保护它。