using SuperSocket.SocketBase; using SuperSocket.SocketBase.Protocol; using System; using System.Collections.Generic; using System.Text; namespace Plugin.BurnIn.Model { public class DTReceiveFilter : ReceiveFilterBase { public override StringRequestInfo Filter(byte[] readBuffer, int offset, int length, bool toBeCopied, out int rest) { rest = 0; int i = offset; List bytes = new List(); while (i < readBuffer.Length) { byte b = readBuffer[i++]; if (b == '\n') { break; } bytes.Add(b); } byte[] arr = bytes.ToArray(); return new StringRequestInfo(DateTime.Now.ToString("yyyyMMddHHmmssfff"), Encoding.UTF8.GetString(arr), null);//sb.ToString() } } public class StringParser : IRequestInfoParser { public StringRequestInfo ParseRequestInfo(string source) { return new StringRequestInfo(DateTime.Now.ToString("yyyyMMddHHmmssfff"), source, null); } } //public class TcpServer : AppServer //{ // public TcpServer() : base(new DefaultReceiveFilterFactory()) // { // } //} public class TcpServer : AppServer { public TcpServer() : base(new TerminatorReceiveFilterFactory("\n", Encoding.UTF8, new StringParser())) { } } public class TcpSession : AppSession { } }