refactor:  "read timeout" support for tcp connection