我正在用C#编写一个程序,它有一个在多个客户端之间传输数据的服务器。现在,每当我需要发送数据时,我发送4个字节的长度和长度字节的数据,并且只要有数据可在接收端读取,它就会读取前4个字节作为长度并读取长度字节数为数据。
我想知道是否可能存在某些字节可能会以某种方式丢失的情况,然后我会因为读取错误的字节作为长度而试图读取数十亿字节的不存在的数据。
我想过使用一个独特的字符串,每当读取该字符串时,之后读取4个字节的长度,然后是某种校验和,然后是4个字节的随机ID,然后长度为读取字节。如果这些字节没有通过校验和或者在其中找到唯一字符串,则丢弃该消息并发送请求以通过其ID重新发送消息,并且将从下一次出现的消息开始接收下一条消息。独特的字符串。
这种方法是否足够好,还是应该以其他方式进行?