func (this *S2sClientProcessor) OnAccept(client *server.Client) { for { if this.server.SessTimeout.Nanoseconds() > int64(0) { client.SetReadDeadline(time.Now().Add(this.server.SessTimeout)) } input := make([]byte, 1460) n, err := client.Conn.Read(input) input = input[:n] if err != nil { if err == io.EOF { client.Close() return } else if nerr, ok := err.(net.Error); ok && nerr.Timeout() { log.Info("client[%s] read timeout", client.RemoteAddr()) client.Close() return } else if nerr, ok := err.(net.Error); !ok || !nerr.Temporary() { client.Close() return } else { log.Info("Unexpected error: %s", err.Error()) client.Close() return } } strInput := string(input) log.Debug("input: %s", strInput) this.OnRead(client, strInput) } }