在supersocket的自定义协议里面,如果遇到一些错误的数据,或者说毫无意义的数据,那么对于 FixedHeaderReceiveFilter 协议,后面正确格式的数据也收不到了,就好像发送错误数据的客户端被拉黑了一样,收不到任何关于客户端的数据了,只能重启服务器才行了,应该怎么做能在接收错误数据之后还能再接收到正确的数据?
class MyReceiveFilter : FixedHeaderReceiveFilter<BinaryRequestInfo>
{
public MyReceiveFilter()
: base(6) { }
protected override int GetBodyLengthFromHeader(byte[] header, int offset, int length)
{
return (int)header[offset + 4] * 256 + (int)header[offset + 5];
}
protected override BinaryRequestInfo ResolveRequestInfo(ArraySegment<byte> header, byte[] bodyBuffer, int offset, int length)
{
return new BinaryRequestInfo(Encoding.UTF8.GetString(header.Array, header.Offset, 4), bodyBuffer.CloneRange(offset, length));
}
}
请问你这个情况后来怎么解决的?