刚接触C#,做个简单的窗体程序,我想实现:利用telnet方式自动登陆到unix主机上,并自动获取该机器的信息,我的主要代码如下:
 private void button4_Click(object sender, EventArgs e)
        {            ProcessStartInfo psi = new ProcessStartInfo("cmd");   //调用自己PC机的命令行
         
            psi.RedirectStandardOutput = true;
            psi.UseShellExecute = false;
            psi.RedirectStandardInput = true;            Process p = Process.Start(psi);
   
            p.StandardInput.WriteLine("telnet");          //利用windows自带的telnet登陆            p.StandardInput.WriteLine("open hostname");   //hostname 即给定的主机IP            p.StandardInput.WriteLine("username");        //username即给定的主机账号            p.StandardInput.WriteLine("passwd");         //passwd即给定的主机密码            p.StandardInput.WriteLine("lsdev ");       //获取主机的设备信息            string output = p.StandardOutput.ReadToEnd();            p.WaitForExit();            MessageBox.Show(output);                     //显示机器设备信息            p.Close();
            
        }我的问题是:我发现程序执行后,MessageBox.Show(output)无法显示输出主机的设备信息,请大家帮我分析下这是为什么?我应该如何做?谢谢。

解决方案 »

  1.   

    output 的值是什么?
    有确定已经成功连上unix主机?
    先手动下命令确定能连上unix主机,然后也可以从网上下载一些telnet的工具来试试。
    一种可能是系统自带的telnet不支持重定向
      

  2.   

    直接手工在cmd命令行里是可以telnet到unix主机上的。
    程序运行后的结果如下:
      

  3.   

    直接手工在cmd命令行里是可以telnet到unix主机上的。
    程序运行后的结果如下:
    http://hi.csdn.net/space-839066-do-album-picid-763240.html
      

  4.   

    直接手工在cmd命令行里是可以telnet到unix主机上的。
    程序运行后的结果如下: