以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]telnet 求助! (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=105012) |
-- 作者:yangguojun -- 发布时间:2017/8/10 10:01:00 -- [求助]telnet 求助! 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), "")) 不知道为什么没有数据, 请老师帮忙改改
|
-- 作者:有点甜 -- 发布时间:2017/8/10 10:14:00 -- Dim P As New Process P.StartInfo.FileName = "cmd.exe" 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(600) Dim S As String = P.StandardOutput.ReadToEnd() \' 得到cmd.exe的输出 output.show(S.Replace(Chr(13), "")) |
-- 作者:yangguojun -- 发布时间: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 -- 发布时间: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 我的代码返回的是上面内容, 没有返回数据
|
-- 作者:有点甜 -- 发布时间:2017/8/10 10:52:00 -- telnet不是这样用的,参考这个做法
http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=84487&replyID=585659&skin=1
|
-- 作者:yangguojun -- 发布时间:2017/8/10 11:31:00 -- 这个例子更加看不懂了 |
-- 作者:有点甜 -- 发布时间:2017/8/10 12:12:00 -- 参考
Dim data, szData Dim SmtpServ As New System.Net.Sockets.TcpClient("127.0.0.1", 80) Data = "aaabbbccc " & vbCRLF \'查看交互内容 \' 关闭连接
|
-- 作者:yangguojun -- 发布时间:2017/8/10 13:38:00 -- 非常感谢! \'查看交互内容 Dim buff(10000) As Byte netstrm.read(buff,0, buff.length) msgbox(System.Text.Encoding.ASCII.getString(buff)) 在这段代码前面 能否 判断 收到的字节长度 是多少
|
-- 作者:有点甜 -- 发布时间:2017/8/10 14:31:00 -- Dim buff(SmtpServ.ReceiveBufferSize) As Byte |
-- 作者:yangguojun -- 发布时间:2017/8/10 14:44:00 -- 这个方法好像不对 output.show(SmtpServ.ReceiveBufferSize) Return 22 得到的数值是 65536 实际上返回的长度只有8
|