我正在建立一种在服务器和客户端之间进行通信的方式。我目前的工作方式是,流的第一个字节将包含一个指示即将到来的内容,然后查找该请求的类,我可以确定请求的长度:
stream.Read(message, 0, 1)
if(message == <byte representation of a known class>)
{
stream.Read(message, 0, Class.RequestSize);
}
我很好奇如何处理类大小未知的情况,如果在读取已知请求后数据已损坏。
我在想我可以在流中插入某种分隔符,但由于一个字节只能在 0-255 之间,我不知道如何去创建一个唯一的分隔符。我想在流中放置一个模式来表示消息的结尾吗?我如何确定这种模式足够独特,不会被误认为是实际数据?