Program Cisco switches by C#

Posted on 2009-05-17
Last Modified: 2013-12-17
I want to use System.Net.Sockets.TcpClient class in .Net framework to configure a Cisco switch or router. Does anyone has any samples or how to?
I already have written the below code. When I run it, I don't get what I expect.
public class Cisco


        private TcpClient _client;

        //private event EventHandler<

        private TcpClient Client




                if (_client == null)

                    _client = new TcpClient();

                return _client;



        public Cisco(IPEndPoint endPoint)



            var s = Read();


        public string RunCommand(string command)


            if (!command.EndsWith("\r\n"))

                command = string.Format("{0}\r\n", command);

            var buffer = ASCIIEncoding.ASCII.GetBytes(command);

            Client.GetStream().Write(buffer, 0, buffer.Length);

            var s = Read();

            return s;


        private string Read()


            var buffer = new Byte[Client.ReceiveBufferSize];

            var read = new List<string>();

            while (Client.GetStream().DataAvailable)


                var state = new object[] { Client.GetStream(), buffer, null };

                var ia = Client.GetStream().BeginRead(buffer, 0, buffer.Length, new AsyncCallback(Read), state);




            return string.Concat(read.ToArray());


        private void Read(IAsyncResult ar)


            var state = ar.AsyncState as object[];

            var stream = state[0] as NetworkStream;

            var buffer = state[1] as byte[];

            var br = stream.EndRead(ar);

            state[2] = br;



     static void Main(string[] args)


             Cisco c = new Cisco(new IPEndPoint(IPAddress.Parse(""), 23));



            Console.Write(c.RunCommand("ENABLE PASSWORD"));

            Console.Write(c.RunCommand("show run"));




Open in new window

Question by:TheMehrdad
  • 2
LVL 68

Accepted Solution

Qlemo earned 250 total points
Comment Utility
Telnet expects some negotiation of options like emulation, echo aso. If you like, you can have a look at the netcat source, it is a tool for streaming stuff thru a telnet connection, but be warned, it is complex and the source comments are rude :-|.


Author Comment

Comment Utility
Dear Qlemo,
Thanks for your comment. Is there any other way to configure a Cisco Switch/Router programatically? If Telnet is the only solution, so I will deal with this netcat.
LVL 68

Expert Comment

Comment Utility
AFAIK there is no other way.

Featured Post

Threat Intelligence Starter Resources

Integrating threat intelligence can be challenging, and not all companies are ready. These resources can help you build awareness and prepare for defense.

Join & Write a Comment

Suggested Solutions

Title # Comments Views Activity
.NET Error 7 41
Replacing a switch in a 3com 5500 switch stack 2 39
Expando 4 33
XML & .net 5 16
A basic question.. “What is the Garbage Collector?” The usual answer given back: “Garbage collector is a background thread run by the CLR for freeing up the memory space used by the objects which are no longer used by the program.” I wondered …
Many of us here at EE write code. Many of us write exceptional code; just as many of us write exception-prone code. As we all should know, exceptions are a mechanism for handling errors which are typically out of our control. From database errors, t…
It is a freely distributed piece of software for such tasks as photo retouching, image composition and image authoring. It works on many operating systems, in many languages.
This tutorial demonstrates a quick way of adding group price to multiple Magento products.

771 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now