2014-11-06 95 views
0

我想从命令行通过.NET打开Telnet会话。 此命令手动精细的工作原理:从命令行Telnet不起作用

telnet towel.blinkenlights.nl 

所以我尽量通过.NET

Process process = new Process(); 
process.StartInfo.FileName = @"C:\windows\system32\cmd.exe"; 
process.StartInfo.Arguments = "telnet towel.blinkenlights.nl"; 
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; 
process.Start(); 
process.WaitForExit(); 

我使用Wireshark检查这个启动流量打开它,在这里似乎什么都没有发生,我流量无法看到任何Telnet

+1

你的片段肯定不是你真正使用的。 Telnet需要模拟一个终端,从而防止I/O重定向工作。只是不要使用其他程序来做到这一点,当不需要终端仿真时,telnet是一个非常简单的协议。使用TcpClient类,端口23。 – 2014-11-06 11:33:35

回答

1

如果您使用ProcessWindowStyle.Normal而不是您实际上不会执行telnet。如果您希望CMD窗口在完成后关闭,您必须添加“/ C”参数;如果您希望它保持打开状态,则必须添加“/ K”参数。

Process process = new Process(); 
process.StartInfo.FileName = @"C:\windows\system32\cmd.exe"; 
process.StartInfo.Arguments = "/k telnet towel.blinkenlights.nl"; 
process.StartInfo.WindowStyle = ProcessWindowStyle.Normal; 
process.Start(); 
process.WaitForExit(); 

后你得到你想要的行为,那么当然切换回Hidden