Foxtable(狐表)用户栏目专家坐堂 → [求助]telnet 求助!


  共有2278人关注过本帖树形打印复制链接

主题:[求助]telnet 求助!

帅哥哟,离线,有人找我吗?
yangguojun
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:102 积分:818 威望:0 精华:0 注册:2013/8/11 9:54:00
[求助]telnet 求助!  发帖心情 Post By:2017/8/10 10:01:00 [显示全部帖子]

Dim P As New Process
        P.StartInfo.FileName = "cmd.exe"
        '这里是关键点,不用Shell启动/重定向输入/重定向输出/不显示窗口
        P.StartInfo.UseShellExecute = False
        P.StartInfo.RedirectStandardInput = True
        P.StartInfo.RedirectStandardOutput = True
        P.StartInfo.CreateNoWindow = True
        P.Start()
        P.StandardInput.WriteLine("ping 127.0.0.1") ' 向cmd.exe输入command
        P.StandardInput.WriteLine("exit")
        P.WaitForExit(60000)
        Dim S As String = P.StandardOutput.ReadToEnd() ' 得到cmd.exe的输出
        P.Close()
        output.show(S.Replace(Chr(13), ""))

不知道为什么没有数据, 请老师帮忙改改



 回到顶部
帅哥哟,离线,有人找我吗?
yangguojun
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:102 积分:818 威望:0 精华:0 注册:2013/8/11 9:54:00
  发帖心情 Post By:2017/8/10 10:33:00 [显示全部帖子]

老师上面的代码可以了,再帮看看下面这段,我在cmd里  测试我的每条代码都没有问题,但是在telnet里  逐条输入得不到结果。


login:cs

password:cs

welcome to cmd

order list:INPUT OUTPUT SENSOR SWITCH REBOOT QUIT

input order:INPUT 0

I1:0.00A        (0.00A ~ 32.00A/35.00A)
U1:219.9V       (0.0V ~ 250.0V/280.0V)
P1:0W
PF1:1.000
E1:0.00kWh

I2:0.00A        (0.00A ~ 32.00A/35.00A)
U2:219.8V       (0.0V ~ 250.0V/280.0V)
P2:0W
PF2:1.000
E2:2.50kWh

I3:0.00A        (0.00A ~ 32.00A/35.00A)
U3:219.9V       (0.0V ~ 250.0V/280.0V)
P3:0W
PF3:1.000
E3:0.49kWh

input order:eXIT

input order:

上面的内容是 cmd里测试的记录,下面是我的代码

Dim iProcess As New Process()
iProcess.StartInfo.FileName = "cmd.exe"
iProcess.StartInfo.UseShellExecute = False
iProcess.StartInfo.RedirectStandardInput = True
iProcess.StartInfo.RedirectStandardOutput = True
iProcess.StartInfo.RedirectStandardError = True
iProcess.StartInfo.CreateNoWindow = False
iProcess.Start()
iProcess.StandardInput.WriteLine("telnet")
iProcess.StandardInput.WriteLine("o 192.168.1.190")
iProcess.StandardInput.WriteLine("cs")
'iProcess.StandardInput.WriteLine("")
iProcess.StandardInput.WriteLine("cs")
iProcess.StandardInput.WriteLine("input 0")
iProcess.StandardInput.WriteLine("TJ00qw.job")
'这里是一个ping命令带ip地址参数的,你可以改成telnet命令还有添加参数
iProcess.StandardInput.WriteLine("exit")
'Label6.Text = iProcess.StandardOutput.ReadToEnd()
output.show(iProcess.StandardOutput.ReadToEnd())



 回到顶部
帅哥哟,离线,有人找我吗?
yangguojun
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:102 积分:818 威望:0 精华:0 注册:2013/8/11 9:54:00
  发帖心情 Post By:2017/8/10 10:45:00 [显示全部帖子]

Microsoft Windows [版本 10.0.10240]
(c) 2015 Microsoft Corporation. All rights reserved.

E:\销售管理(远程)>telnet

E:\销售管理(远程)>o 192.168.1.190

E:\销售管理(远程)>cs

E:\销售管理(远程)>
E:\销售管理(远程)>cs

E:\销售管理(远程)>input 0

E:\销售管理(远程)>exit

我的代码返回的是上面内容,  没有返回数据

 回到顶部
帅哥哟,离线,有人找我吗?
yangguojun
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:102 积分:818 威望:0 精华:0 注册:2013/8/11 9:54:00
  发帖心情 Post By:2017/8/10 11:31:00 [显示全部帖子]

图片点击可在新窗口打开查看这个例子更加看不懂了

 回到顶部
帅哥哟,离线,有人找我吗?
yangguojun
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:102 积分:818 威望:0 精华:0 注册:2013/8/11 9:54:00
  发帖心情 Post By:2017/8/10 13:38:00 [显示全部帖子]

非常感谢! 

'查看交互内容
Dim buff(10000) As Byte
netstrm.read(buff,0, buff.length)
msgbox(System.Text.Encoding.ASCII.getString(buff))

在这段代码前面  能否 判断  收到的字节长度 是多少 

 回到顶部
帅哥哟,离线,有人找我吗?
yangguojun
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:102 积分:818 威望:0 精华:0 注册:2013/8/11 9:54:00
  发帖心情 Post By:2017/8/10 14:44:00 [显示全部帖子]

这个方法好像不对 

output.show(SmtpServ.ReceiveBufferSize)
Return 22

得到的数值是  65536   实际上返回的长度只有8

 回到顶部
帅哥哟,离线,有人找我吗?
yangguojun
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:102 积分:818 威望:0 精华:0 注册:2013/8/11 9:54:00
  发帖心情 Post By:2017/8/10 16:12:00 [显示全部帖子]

SmtpServ.Available
原来这个是判断可读取长度,非常感谢!

 回到顶部