gpt4 book ai didi

c# - 套接字消息头构建

转载 作者:行者123 更新时间:2023-11-28 06:20:33 27 4
gpt4 key购买 nike

我正在开发一个协议(protocol),该协议(protocol)将通过 tcp 套接字传输 xml 数据 block 。现在假设我需要从一个 xml 文件中读取所有字节并构建一个内存缓冲区。然后在发送实际数据字节之前,我需要将一个 header 发送到其他对等端。使用以下 header 类型说出我的协议(protocol)。

MessageID=100,Size=232,CRC=190

string strHeader = "100,232,190"

现在我想知道如何为任意数量的 xml 数据固定此 header 长度(其他对等点需要固定 header 长度才能将其识别为 header )。目前说我有一个大小为 283637 字节的 xml 文件,因此消息 header 看起来像。

string strHeader = "100,283637,190"

如何让它对任何大小的数据都通用?代码是用 c++ 和 c# 编写的。

最佳答案

有很多方法可以做到这一点。

固定长度

您可以用前导零填充数字,这样您就可以准确知道需要处理的文本长度。 000100,000232,000190

使用字节而不是字符串

如果您使用整数,您可以将字节作为整数读取,而不是操作字符串。查看 BinaryReader类(class)。如果需要在 C++ 端执行此操作,概念仍然相同。我确信有很多方法可以将 4 个字节转换为 int。

在开头指定长度

通常在使用动态长度字符串时。有一个指示器指示需要读取多少字节才能获取整个字符串。您可以将消息的前 4 个字节指定为字符串的长度,然后读取到该点。

关于c# - 套接字消息头构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29373422/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com