Q

Can I make a socket connection or override the connection to port 23 to use telnet?

I am currently attempting to develop a Windows app that will run video encoding processes on remote computers within a company network. Is there a way make a socket connection or override the connection to port 23 on the remote computers so that I can utilize telnet? I'm trying to avoid having to setup a TcpListener program to a free port on every computer I wish to run processes on. Thanks.
You should not attempt to bind another listening socket to a port and address that you know a well known service is already running. What you are discussing is called socket hijacking. It is sometimes possible for one socket to bind to an address even if another socket is already bound to a less specific interface and port. For example, if you created a socket and bound it to IPAddress.Any on port 5000, it would be possible for another socket to come along afterwards and bind to a more specific interface (ie. the nic's IP address or loopback address). Often times instead of binding to a specific interface developers will take the easier route and bind using the IPAddress.Any address. This is fine, however it is vulnerable to the socket hijacking technique described above. If you are curious about this, just fire up a web browser and do a quick Google search for "Socket Hijacking", and you should find some relevant information.

So in review, do not do this. Even if it works, it's considered rude and extremely bad practice. I have tried this myself to bind on port 23 with telnet running, and I had no success. I would assume such a well known service such as Telnet will be very well written and bind to specific interfaces to prevent such a technique from being possible.

There is absolutely no reason that you cannot choose an open port to use, and make this the default port for your application. Review the list of well known ports here, http://www.iana.org/assignments/port-numbers and find one that is free. There's no more overhead in using an open port than there is to try and steal one that is in use. Also consider the debugging and support issues that might arise when trying to deploy an application that knowningly violates the respected rules of internet programming.

Try and use a port number that falls between 49152 through 65535. Those are considered open for private use. If you want, you can register your application and port number with IANA so that other developers won't be tempted to use your port number!
This was first published in September 2004

Dig deeper on C# programming language

Have a question for an expert?

Please add a title for your question

Get answers from a TechTarget expert on whatever's puzzling you.

You will be able to add details on the next page.

0 comments

Oldest 

Forgot Password?

No problem! Submit your e-mail address below. We'll send you an email containing your password.

Your password has been sent to:

-ADS BY GOOGLE

SearchCloudComputing

SearchSoftwareQuality

SearchSOA

TheServerSide

SearchCloudApplications

Close