亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在本地控制臺上使用 C# SSH.NET 執行的遠程主機 (Raspberry Pi)

如何在本地控制臺上使用 C# SSH.NET 執行的遠程主機 (Raspberry Pi)

C#
holdtom 2023-09-16 15:53:56
我正在我的計算機上用 C# 編寫一個程序,該程序應該在遠程 Raspberry Pi 上啟動 Python 程序。目前,Python 代碼只是'Hello'每秒打印一次。該程序應該永久運行。當我從 C# 啟動此程序時,如果我的程序正在運行,我希望獲得視覺反饋 - 我希望看到像 PuTTY 中一樣的打印輸出。以下代碼適用于類似 的命令ls。但由于我的 Python 程序test.py無法完成——我從未得到輸出——我陷入了連續循環。如何實時顯示輸出?這是我的代碼:using Renci.SshNet;static void Main(string[] args){    var ssh = new SshClient("rpi", 22, "pi", "password");    ssh.Connect();    var command = ssh.CreateCommand("python3 test.py");    var asyncExecute = command.BeginExecute();    while (true)    {        command.OutputStream.CopyTo(Console.OpenStandardOutput());    }}
查看完整描述

2 回答

?
回首憶惘然

TA貢獻1847條經驗 獲得超11個贊

SSH.NETSshClient.CreateCommand不使用終端模擬。

在沒有終端仿真的情況下執行時,Python 會緩沖輸出。所以你最終會得到輸出,但只有在緩沖區填滿之后。

為了防止緩沖,請將-u開關添加到python命令行:

var?command?=?ssh.CreateCommand("python3?-u?test.py");



查看完整回答
反對 回復 2023-09-16
?
至尊寶的傳說

TA貢獻1789條經驗 獲得超10個贊

如果您希望本地主機上的遠程程序的輸出,則遠程程序(“test.py”)必須與本地主機通信。然后,運行 C# 程序的本地主機可以在從 RPi 收到消息時打印一些內容。通常,在 RPi 上啟動 test.py 后,您可以向本地主機發送一條消息,例如“Started”或“0”,或任何您想要的消息。

如果您有一個運行 test.py 的活動 SSH 窗口,您可以直接從 RPi 打印到它。


查看完整回答
反對 回復 2023-09-16
  • 2 回答
  • 0 關注
  • 174 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號