public class SocketServer : AppServer<AppSession>
{
public SocketServer()
: base(new DefaultReceiveFilterFactory<FixedLengthReceiveFilter, StringRequestInfo>())
{
}
}
class FixedLengthReceiveFilter : FixedSizeReceiveFilter<StringRequestInfo>
{
public FixedLengthReceiveFilter() : base(9) { }
protected override StringRequestInfo ProcessMatchedRequest(byte[] buffer, int offset, int length, bool toBeCopied)
{
byte[] tmp = buffer.Skip(offset).Take(length).ToArray();
string[] result = Encoding.ASCII.GetString(tmp);
return new StringRequestInfo("KeyInfo", "BodyInfo", result);
}
}
转自:http://docs.supersocket.net/v1-6/zh-CN/Implement-Your-Own-Communication-Protocol-with-IRequestInfo,-IReceiveFilter-and-etc