首页 新闻 搜索 专区 学院

SuperSocket使用FixedHeaderReceiveFilter协议

0
悬赏园豆:10 [待解决问题]

在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));
    }
}
昨天忆的主页 昨天忆 | 初学一级 | 园豆:192
提问于:2020-09-17 10:10
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册