public InterProcessMessage GetMessage() { string cont = Console.ReadLine(); if (cont == null) { return(null); } return(InterProcessMessage.Parse(cont)); }
/// <summary>Read a message.</summary> /// <returns>Message read or <c>null</c> when disconnected.</returns> public InterProcessMessage GetMessage() { if (!_running) { return(null); } if (_messageQueue.Count > 0) { return(_messageQueue.Dequeue()); } while (_messageQueue.Count == 0) { int readLen = _ns.Read(_buffer, 0, BufferSize); if (readLen == 0) { return(null); } _frag += TcpEncoding.GetString(_buffer, 0, readLen); int start = 0; int len = _frag.Length; while (start < len) { int sepIndex = _frag.IndexOf(PackageSeparator, start); if (sepIndex < 0) { break; } _messageQueue.Enqueue(InterProcessMessage.Parse(_frag.Substring(start, sepIndex - start))); start = sepIndex + 1; } _frag = _frag.Substring(start, len - start); } return(_messageQueue.Dequeue()); }