2014-11-06 97 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