Multithreaded client-server chat program with file upload