How can I read only one character at a time?



How can I read only one character at a time?..

Answer / chaitanya

This question is usually asked by people who are testing their server with telnet, and want it to process their keystrokes one character at a time. The correct technique is to use a psuedo terminal (pty). More on that in a minute.

You can have your server send a sequence of control characters: 0xff 0xfb 0x01 0xff 0xfb 0x03 0xff 0xfd 0x0f3, which translates to IAC WILL ECHO IAC WILL SUPPRESS-GO-AHEAD IAC DO SUPPRESS-GO-AHEAD. For more information on what this means, check out std8, std28 and std29. Roger also gave the following tips:

o This code will suppress echo, so you'll have to send the characters the user types back to the client if you want the user to see them.

o Carriage returns will be followed by a null character, so you'll have to expect them.

o If you get a 0xff, it will be followed by two more characters. These are telnet escapes.

Use of a pty would also be the correct way to execute a child process and pass the i/o to a socket.

Is This Answer Correct ?    0 Yes 0 No

Post New Answer

More Unix Socket Programming Interview Questions

When should I use UDP instead of TCP?

1 Answers  


How often should I re-transmit un-acknowleged messages?

1 Answers  


Why do not my sockets close?

1 Answers  


Why does it take so long to detect that the peer died?

0 Answers  


How does unix socket work?

0 Answers  






Can a socket have multiple ports?

0 Answers  


How come select says there is data, but read returns zero?

1 Answers  


How do I send [this] over a socket?

1 Answers  


Why do we need socket programming?

0 Answers  


When will my application receive SIGPIPE?

1 Answers  


What is the difference between SO_REUSEADDR and SO_REUSEPORT?

0 Answers  


What is a socket set used for?

0 Answers  


Categories