[C#]SharpSSH-一个可以使用SSH连接的.NET库
2015-03-16 13:46
316 查看
A Secure Shell (SSH) library for .NET
觉得有用,就记录下来了
http://www.tamirgal.com/blog/page/SharpSSH.aspx http://sourceforge.net/projects/sharpssh/?source=typ_redirect
再来个例子供参考
觉得有用,就记录下来了
http://www.tamirgal.com/blog/page/SharpSSH.aspx http://sourceforge.net/projects/sharpssh/?source=typ_redirect
再来个例子供参考
public partial class SSHWnd : Form { private SshShell ss = null; private Stream io = null; private SshConnectionInfo scInfo; private static byte[] buffer; private static int bufSize = 256; private static AsyncCallback readCallback; private delegate void addLineDelegate(string s); public SSHWnd(SshConnectionInfo scInfo) { InitializeComponent(); this.scInfo = scInfo; try { ss = new SshShell(scInfo.Host, scInfo.User); if (scInfo.Pass != null) { ss.Password = scInfo.Pass; } if (scInfo.IdentityFile != null) { ss.AddIdentityFile(scInfo.IdentityFile); } ss.Connect(22); io = ss.GetStream(); buffer = new byte[bufSize]; readCallback = new AsyncCallback(OnCompletedRead); io.BeginRead(buffer, 0, bufSize, readCallback, null); } catch { MessageBox.Show("Error!"); } } private void OnCompletedRead(IAsyncResult ar) { int bytesRead = io.EndRead(ar); if (bytesRead > 0) { String str = Encoding.UTF8.GetString(buffer, 0, bytesRead); this.Invoke(new addLineDelegate(addLine), new object[]{str}); io.BeginRead(buffer, 0, bufSize, readCallback, null); } } void addLine(string s) { textBox1.AppendText(s); } private void SSHWnd_FormClosing(object sender, FormClosingEventArgs e) { if (ss.Connected) { io.Close(); ss.Close(); } } private void button1_Click(object sender, EventArgs e) { if (textBox2.Text != "") { try { StreamWriter sw = new StreamWriter(io); sw.Write(textBox2.Text); sw.Write('\n'); sw.Flush(); } catch { MessageBox.Show("Terminated yet!"); this.Close(); } textBox2.Text = ""; } } }
相关文章推荐
- 使用C#编写一个计时器-.NET教程,C#语言
- .NET平台下使用C#连接各种数据库
- 在C#中使用WinGraphviz,一个COM图论组件,兼谈COM接口IStream在.NET下的互操作
- [转]C#创建服务及使用程序自动安装服务,.NET创建一个即是可执行程序又是Windows服务的exe
- 在进行C#编程时候,有的时候我们需要判断一个字符串是否是数字字符串,我们可以通过以下两种方法来实现。 【方法一】:使用 try{} catch{} 语句。 我们可以在try语句块中试图
- 使用C#编写一个计时器-.NET教程,C#语言
- .net C#线程连接Join的技巧,如何真正让一个线程结束,另外一个线程启动
- C#通过SharpSSH库与Linux服务器建立SSH连接并执行命令
- 使用C#写了一个可以推算火车票身份证号码的小程序
- c#连接access2003操作必须使用一个可更新的查询解决方法
- C#创建服务及使用程序自动安装服务,.NET创建一个即是可执行程序又是Windows服务的exe
- C#第2次试验(1).创建一个抽象类A,该类中包含一个求两个数之和抽象方法。创建一个子类B,在B中重写求和方法,且使用方法重载使得方法可以分别计算整数、双精度、字符串。
- C#使用oledb连接excel运行Insert Into语句出现“操作必须使用一个可更新的查询”的解决的方法
- 一个简单的动态编译器,支持C#和VB.NET。当你想测试一些简单的代码的时候可以使用。
- 使用c#创建一个可以监视全局鼠标位置的程序
- C#创建服务及使用程序自动安装服务,.NET创建一个即是可执行程序又是Windows服务的exe(转)
- C#使用oledb连接excel执行Insert Into语句出现“操作必须使用一个可更新的查询”的解决办法
- 大家用了这么久的.net有没有发现C#中可以用中文变量呀!!可用这个特性来彻底改变程序的易读性(搞笑).但其实有一个非常独特的用处的
- C#连接数据库简单点的,可以当成一个模板
- C#创建服务及使用程序自动安装服务,.NET创建一个即是可执行程序又是Windows服务的exe