Change IO pattern
from
read after read completed
to
read after write completed
This avoids that one write operation is invoked before a huge data write operation is not completed which invoked by the same client in the previous request

Assign a continues int id for each client when the client is created. When server receive data from client, it dispatches data to a specified compute thread according to this id.