日期:2014-05-17  浏览次数:20914 次

一个TELNET类,不知是使用出错还是代码出错,求高人分析
近来在研究者telnet的应用,自己不会开发,所以上网找了一个类
类地址:http://www.cnblogs.com/yinchengliang/archive/2012/06/05/2536887.html

这个是自己的主函数
    class Program
    {
        static void Main(string[] args)
        {

           Telnet p = new Telnet("192.168.220.128", 23, 300);

            if (p.Connect() == false)
           {
               Console.WriteLine("连接失败");
               Console.ReadKey();
               Console.WriteLine(p.SessionLog);
               Console.WriteLine(p.WorkingData);
               return;
           }
            //等待指定字符返回后才执行下一命令
            p.WaitFor("login:");
            p.Send("administrator");
            p.WaitFor("password:");
            p.Send("chinagdn");
            p.WaitFor(">");            
            Console.WriteLine(p.SessionLog);
            p.Send("hlep");
            p.Send("dir");
            p.Send("dir");
            Console.WriteLine(p.SessionLog);
            Console.WriteLine(p.WorkingData);
            Console.ReadKey();
        }
    }

我测试虚拟机1的时候命令返回成功,但是在虚拟机2却一直停在p.WaitFor(">")这一句上,然后自己用自己win7上使用直接就是连接不上。我不知道用这个类是不是要计算机开启哪些配置的?还有为什么每句命令完了都要p.WaitFor(">")一次呢?我看分析代码能力一般,求大神解读。谢谢

------解决方案--------------------
你的win7是禁用telnet了吧,你需要将此选项打开
------解决方案--------------------
开启telnet方法如下:
打开Control Panel,选择Program下的Turn Windows features on or off,在弹出的对话框中将telnet client打上勾就可以了。
打钩的时候注意别给telnet server打上了勾,否则结果~~~~~自己想象吧。
win7下的telnet命令的使用也有些特别。
首先得在cmd下输入telnet进入telnet模式,在telnet模式下可以输入好几条命令,
Microsoft Telnet> ?/help
Commands may be abbreviated. Supported commands are:
c     - close                     close current connection
d     - display &nbs