您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

C#通过TCP接收结构后反序列化结构

C#通过TCP接收结构后反序列化结构

您应该实现适当的 length-prefixing ,而不是用字符串来表示您的数据包长度,然后减去该字符串的长度来知道从哪里开始读取。长度前缀与数据头结合使用将使您能够根据数据包的大小读取每个数据包,然后数据头将帮助您确定如何处理数据。

普通的长度前缀为您发送的每个“数据包”添加一个固定的报头。要创建此标头,您需要将整数(数据的长度)转换为字节,这将导致4个字节,然后在其后添加数据标头以及数据包的其余部分(即您要发送的数据) 。

这将创建以下数据包结构:

[Length (4 bytes)][Header (1 byte)][Data (x byte(s))]

读取数据包非常简单:

读取前4个字节(Length),将其转换并将其分配给整数变量。

读取下一个字节(数据头)并将其放入变量中。

x将字节读取到字节数组(其中x是您在步骤1中声明的整数)。

使用步骤2中的数据标头确定如何处理数据(步骤3中的字节数组)。

之一中,您可以看到我上面刚刚解释的示例。

c# 2022/1/1 18:14:16 有610人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶