bidirectional client-server communication