server sends file and client receives it... used threads with conditional variables & mutexes