• [C#]SharpSSH-一个可以使用SSH连接的.NET库


    A Secure Shell (SSH) library for .NET

    觉得有用,就记录下来了

    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('
    ');
                    sw.Flush();
                }
                catch
                {
                    MessageBox.Show("Terminated yet!");
                    this.Close();
                }
    
                textBox2.Text = "";
            }
        }
    }
  • 相关阅读:
    ActivityGroup简单介绍
    退役笔记一#MySQL = lambda sql : sql + ' Source Code 4 Explain Plan '
    敏捷开发流程总结
    TI C66x DSP 系统events及其应用
    AssemblyInfo.cs文件的作用
    angularjs基本执行流程
    美丽的表格样式(使用CSS样式表控制表格样式)
    DOS命令大全--具体解释
    《海量数据库解决方式》读后感
    Linux内核设计基础(十)之内核开发与总结
  • 原文地址:https://www.cnblogs.com/boneking/p/4341650.html
Copyright © 2020-2023  润新知