added socket communication timeout