fix "client connect before server bind" issues

If:

1. client connects;
2. client makes some requests;
3. wait a long time until client requests all timeout;
4. server binds;

Then:

1. server will still receive all timeout requests;
2. server will handle all these requests, then response to the client;
3. when client receives these response, client will response "invalid request" error;
4. server will response "invalid request" to this error, and client will response "invalid request" again;
5. they will come into a infinite "invalid request" loop;

So I added features below to avoid these issues.

1. "expire time" to request;
2. "hwm" to client.

Please consider to merge.