two-way communication: client <-> server