lpdclient started life as a console application written in C using standard libc function calls.
See my C development pages for more details of C libc application development for EPOC.
The C source code is available to browse here.
The console application had a number of drawbacks. These were:
See my C++ development pages for more details of C++ console application development for EPOC.
The C++ version is an improvement on the original C version. The source code is available to browse here.
The improved program is implemented as a fully asynchronous state machine which promptly responds to keystrokes at all times and provides time-outs for all network operations. This is enabled by the following features of the C++ EPOC E32BASE classes.
The console provided is more sophisticated then its C STDLIB counterpart. The CConsoleBase class provides:
The RSocket and RHostResolver networking classes support asynchronous calls.