using System; using System.IO; using System.Text; using System.Threading; using Jscape.Telnet; namespace TelnetExample { public class TelnetExample { public bool connected = false; public Telnet myTelnet = null; public TelnetExample(string hostname){ myTelnet = new Telnet(hostname); // Subscribe to connection events myTelnet.ConnectedEvent += new Telnet.ConnectedEventHandler(OnConnected); myTelnet.DisconnectedEvent += new Telnet.DisconnectedEventHandler(OnDisconnected); // Subscribe to option events myTelnet.DoOptionEvent += new Telnet.DoOptionEventHandler(OnDoOption); myTelnet.DontOptionEvent += new Telnet.DontOptionEventHandler(OnDontOption); myTelnet.WillOptionEvent += new Telnet.WillOptionEventHandler(OnWillOption); myTelnet.WontOptionEvent += new Telnet.WontOptionEventHandler(OnWontOption); // Subscribe to data received event myTelnet.DataReceivedEvent += new Telnet.DataReceivedEventHandler(OnDataReceived); // Connect to telnet server myTelnet.Connect(); this.Connected = true; // Begin reading and writing data to telnet server TelnetOutputStream output = myTelnet.GetOutputStream(); string input = ""; while ((input = Console.ReadLine()) != null) { if ((this.Connected) && (input != "exit")) { ((TelnetOutputStream) output).PrintLn(input); } else { break; } } // Disconnect from telnet server myTelnet.Disconnect(); } public bool Connected { get { return connected; } set { connected = value; } } public static void Main() { Console.Write("Telnet server: "); string hostname = ""; if ((hostname = Console.ReadLine()) != "") { TelnetExample telnetexample = new TelnetExample(hostname); } } public void OnConnected(object sender, TelnetConnectedEventArgs e) { Console.WriteLine("Connected to {0}:{1}", e.Host, e.Port); } public void OnDisconnected(object sender, TelnetDisconnectedEventArgs e) { this.Connected = false; Console.WriteLine("Disconnected."); } public void OnDoOption(object sender, TelnetDoOptionEventArgs e) { myTelnet.SendWontOption(e.Option); } public void OnDontOption(object sender, TelnetDontOptionEventArgs e) { myTelnet.SendDontOption(e.Option); } public void OnWillOption(object sender, TelnetWillOptionEventArgs e) { myTelnet.SendDontOption(e.Option); } public void OnWontOption(object sender, TelnetWontOptionEventArgs e) { myTelnet.SendWontOption(e.Option); } public void OnDataReceived(object sender, TelnetDataReceivedEventArgs e) { Console.Write(Encoding.ASCII.GetString(e.Data)); } } }