How can I open a telnet connection and run a few commands in C#
c#, telnet
Solution
C# 2.0 and Telnet - Not As Painful As It Sounds http://geekswithblogs.net/bigpapa/archive/2007/10/08/C-2.0-and-Telnet---Not-As-Painful-As-It.aspx
Or this alternative link.
If you're going to use the System.Net.Sockets class, here's what you do:
- Create an IPEndpoint, which points to the specified server and port. You can query DNS.GetHostEntry to change a computer name to an IPHostEntry object.
- Create a socket object with the following parameters: AddressFamily.InterNetwork (IP version 4), SocketType.Stream (rides on InterNetwork and Tcp parameters), ProtocolType.Tcp (reliable, two-way connection)
- Open the socket like this: socket.Connect(endpoint); //yup, it's that simple Send your data using socket.Send(... wait, I forgot something. You have to encode the data first so it can fly across them wires.
- Use Encoding.ASCII.GetBytes to convert the nice message you have for the server into bytes. Then use socket.Send to send those bytes on their way.
- Listen for a response (one byte at a time, or into a byte array) using socket.Receive Don't forget to clean up by calling socket.Close()
You can [also] use a System.Net.Sockets.TcpClient object instead of a socket object, which already has the socket parameters configured to use ProtocolType.Tcp. So let's walk through that option:
- Create a new TcpClient object, which takes a server name and a port (no IPEndPoint necessary, nice).
- Pull a NetworkStream out of the TcpClient by calling GetStream()
- Convert your message into bytes using Encoding.ASCII.GetBytes(string) Now you can send and receive data using the stream.Write and stream.Read methods, respectively. The stream.Read method returns the number of bytes written to your receiving array, by the way.
- Put the data back into human-readable format using Encoding.ASCII.GetString(byte array).
- Clean up your mess before the network admins get mad by calling stream.Close() and client.Close().
Problem
IS this straightforward? Does any one have any good examples? All my google searches return items on how to make telnet clients in dotNet but this overkill for me. I'm trying to do this in C#. Thanks!