I am writing a socket based "python cmd like" server module which can support cli interactive functions such as autocompletion or command history, by doing that a simple "telnet" or "nc" client side may able to connect to server to read/set something on server side.
after searching, there are a lot of modules can do "cmd" part such like python standard module "cmd" or "ipython" or even vty simulator, however, I cannot find a module can actually bind to socket directly to detect keystrokes such as "tab" key or "control+c" client side. Most of them just able to process line(s) read, which not suitable for autocompletion with tab press or command history with up/down press. 
I think this question can be simplify to:
Is that possible to read socket keystroke input non-blocking, then process this key input value somehow server side - for example ASCII code + 1, then echo back to socket to show in client side?
Thank you for your help.
What you want is not possible. As you say, you want to write a socket based cmd like server. The server will open a socket and listen for data from the client. Now it is possible to read socket input character by character (which is not the same as non-blocking BTW), but that will not help you. 
It is up to the client program to decide how and when to send the data. So if the client side program decides to "eat" tab and control characters, then you will simply not see them. So if you want to process keystrokes one by one, you will also need a client application.
How to handle keystroke in python socket?