client/server hand-shake