我正在构建一个服务器和客户端之间通信的方式。目前的工作方式是,数据流的第一个字节包含要传递的内容指示器,然后查找该请求的类别,以确定请求的长度:
stream.Read(message, 0, 1)
if(message == <byte representation of a known class>)
{
stream.Read(message, 0, Class.RequestSize);
}
我想知道如何处理班级规模未知的情况,或者在读取已知请求后数据损坏的情况下应该怎么办。
我考虑可以在流中插入某种分隔符,但由于字节只能介于0-255之间,我不确定如何创建一个独特的分隔符。我想在流中放置一个模式来表示消息的结束吗?我如何确保这个模式足够独特,不会被误认为是实际数据?