//protected abstract void ReadResponse(Socket socket); protected virtual void ReadResponse(Socket socket) { bool hasMoreLines; do { var line = socket.ReceiveLine(); hasMoreLines = false; if(MultiLineResponse) { if(line.StartsWith(string.Format("{0} ", ResponseCode.ToString().PadLeft(3, '0')))) { line = " " + line.Substring(3); } else { hasMoreLines = true; } } ResponseLines.Add(line); } while (hasMoreLines); TraceHelper.WriteLine(string.Join("\n", ResponseLines)); }