This is the challenge where you can meet your competitors virtually. You have to develop a chat application. The networking architecture is quite simple, in the client-server model the server will relay all the messages of the clients. The protocol is however non-standard.
The UI should contain three parts. First one is the list of users logged in. The second one is a text entry for the user to send the message. The third one is the box for the messages in the order they arrive.
The server and your client use the same protocol. The unencrypted TCP data stream consists of messages. Each message starts with a one byte command, followed by UTF-8 encoded payload and delimited by the DEL character 0x7f. The maximum length of the messages is 256 bytes, including the command and the terminator character. Enhance your calm – your connection is rate limited; if you exceed 5 messages in 10 seconds, the server will terminate your connection.
Types of messages are:
There is also a robot client on the server. It tells a joke if you type ?joke, and logs in and out if you type ?reconnect. It helps you with debugging your application. You might also meet other competitors in the chat room.
You can use any programming language, graphical library and socket library you like. You have to develop the client, the server is available. Contact the mentor for details (server info and account).
When you are ready, you should show your client application to Zoltan Czirkos, one of our community mentors.
Submission is not eligible for any points if the basic functions do not work: logging in and out, sending and receiving messages, displaying the conversation.