Hello
I want a network based chat application written entirely in Visual C++ (preferably 2008).
It should be multi-thread (if needed), TCP based chat application. Features should include:
- Connection in TCP (you choose the port)
- Data transfer should be encrypted. Encryption should be in a class with easy to modify style. So later I can change encryption algorithm and key. For now make them static.
- Text area which will show texts should support unicode/utf-8 chars. I don't know which, but it should display hebrew, arabic, etc.
- It will be used in network, it should have a list of people in network in this format:
IPADDRESS|NAMEOFPERSON
IPADDRESS2|NAMEOFPERSON2
IPADDRESS3|NAMEOFPERSON3
etc.|etc.
When app loaded, it should load IP addresses, names in a list, then should show status of user (online/offline). App could try to send a PING to IPs and find out if their chat application is running. Online/offline mode of users should be displayed in a nice UI button/color/text/etc. (user-friendly)
There should be 3 buttons in application (preferably with a keyboard shortcut)
a) Open link - will open last HTTP or HTTPS link sent by a user in chat.
b) Copy link - will copy last HTTP or HTTPS link to clipboard.
c) Launch UNC path - should open last UNC path in explorer, like \\PC-1\Share1
If button clicked but none of above links existed, should do nothing, no annoyin "Not found" messages.
- Should not have seperate window per person, it should display all received text in same window like this:
Person1: test message
Person2: test message
You: hi there
etc.
- Should have a little difference in color per user (but readable colors in white, like green, blue, etc)
UI could be like this:
-------------------------------------------------------------------
| | |
| person 1 | |
| person 2 | |
| person 3 | |
| | |
| | |
| | UNICODE TEXT AREA HERE |
| | |
| | |
| | |
| | |
------------------------------------------------------------------|
|button1 | |
|button2 | user input text box |send| |
|button3 | |
-------------------------------------------------------------------
Feel free to change UI, but above style is approximately what I need in UI, make it user-friendly please with interactive colorfull button/text/status indicators.
Thanks in advance