Software has two parts: client and server.
Software is developed in VS2010, c++
Communication is encrypted via key exchange.
Multiple clients can chat with each other as long as the server side software is running.
1. Client selects a local file and send along with a message.
2. Encryption key is generated automatically (right now you need to move the mouse)
3. All files uploaded are kept by the server, along with sender's ID, upload date.
4. All chats are saved
5. Client should be able to request a file by selecting its name and the file will be downloaded
6. All file uploads and downloads must be asynchronized.
7. Command line operation for server and client parts
sendfile <client id> <client encryption key> <file>
sendmessage <client id> <client encryption key> <message text>
listallfiles <optional <client id>