LTC is an instant messenger system - similar to early and simple versions of ICQ, MSN, AOL, etc. It supports online and offline messaging, messages to individuals or broadcasts to all users online, multiple simultaneous logins and user statuses. There is a client that runs on Windows, and a server that can run on Windows or Linux. It can run on internal networks or across the Internet.
I designed and wrote LTC for my gigantic student house when I was at university - it was just before the time when
broadband became available so we couldn't really use any of the Internet instant messengers. It was well used for things
like organising hearty get-togethers for many-a-game-of Charades* and co-ordinating trips to the theatre**...
It isn't as useful now since everybody can just use the Internet ones. LTC served its purpose though - it operated for 2 years carrying thousands of messages around for about 15 users. My other reason for writing LTC was to learn C, C++ and Visual C++.
The logon box, main window and tray icon:
The client configuration and the windows server:
You can send a message to a single person who is online by clicking on the name of the person, typing a message and pressing send. It will be sent immediately.
When you receive a message, your system tray icon will immediately start blinking (a message icon or a broadcast icon) and a sound may be played. On your contact list, an icon will blink next the sender's name (a message icon or a broadcast icon). When you double click their name, their message to you, or their broadcast message will be displayed, at which point you can reply or close the message.
You can send a message to everybody who is online at the same time. This is an option on the right-click mouse menu called "Send broadcast".
You can send a message to someone who is offline exactly the same way you would with someone who is online, and they will receive it as soon as they next log on to LTC.
By pressing the Status button and selecting a status, you can change the icon displayed next to your name in everyone else's contact list. Your status icon is shown at the top right of your LTC window.
User names and passwords are used to protect all accounts.
You can log on to LTC as many times as you like simultaneously. All your clients will stay synchronised - if you read a message on one of them, it will disappear from all the others. If you change your status on one, all the others will update. This makes no difference at all to other people's contact lists, you still only appear once.
Since messages are kept on the server, no message can ever be lost due to the computer crashing, you logging off, or you quitting the client or Windows. All your messages will reappear when you log on the next time.
You can configure the client to play different sounds, the same sound or no sound when you get a message or a broadcast. The client can also repeat the sound (or a different sound) every 40 seconds or so if you don't answer the message. If a box is empty, the client will not play a sound. See the image of the options screen to the right.
The client has been tested on Windows 95, Windows 98, Windows NT 4 and Windows 2000.
The server has been tested on Windows 95, Windows 98, Windows NT 4 and Windows 2000. This does introduce a security risk though if run on a user computer - the passwords are stored in a file with the server. They can be read by whoever runs the server. For this reason, it is recommended that the program be run on a secure server computer, although this is not necessary.
The system uses the standard Internet Protocol UDP. This means that the clients can be run anywhere that has TCP/IP contact with the server computer. This includes across the Internet. Although this has not been specifically designed in it does work, but if you have a slow connection to the server you may have to be patient with the client.
Although the algorithm used to obfuscate all the network communication is very simple, it does prevent casual network sniffer programs from displaying all messages and passwords.
No network broadcasts are used so the system can work just as well through as many bridges, gateways, and routers to get to the server as you can set up.
Administrator users can change details of other users, reset passwords, kick users, delete accounts, send system broadcasts and shut down the server remotely.
LTC is released under the terms of the GNU General Public Licence which means you can download and use it for free.
In the zip or tar.gz file you will find client and server directories. Windows compiled binary programs are available in these directories. The client will run on its own from anywhere with no further installation - though you might have to specify a location to save an ini file to it on the command line if you don't have write access to where it decides to save its file.
The server is very similar, except that you must make sure that a folder called "userdata" exists in the current working directory when you start the server.
Source code for the client can be found in client/src ready to use in Visual C++ 6 or compatible. Source code for the Windows version of the server can be found in server/windows (also server/common is used), and is for Visual C++ 6 or compatible. Source code for the Linux version of the server can be found in server/linux (also server/common is used) and compiles with simply "make". It compiles fine on my Debian woody system, it has compiled in the past on various versions of Red Hat and I would expect it to compile on any Linux system (maybe even any POSIX system?) with perhaps minor modifications to header files. One other thing though, it will only work on little-endian systems.
* = network games of Counterstrike
** = a few pints out down the pub.
Back to main page
12886 hits since 2/May/05