gpt4 book ai didi

.net - 什么是编码?当某事为 "marshalled?"时发生了什么

转载 作者:行者123 更新时间:2023-12-03 05:28:51 25 4
gpt4 key购买 nike

我知道这个问题至少有人问过 here .

但没有一个令人满意的答案,至少对我来说不是。关于与非托管代码互操作的编码有很多讨论,但是从一个线程编码到另一个线程又如何,就像我们有时在 .NET 中必须做的那样。

这让我问,编码到底是什么?当您给出编码的定义时,您将如何定义它,以便它解释互操作性的情况,以及在线程之间“编码”的情况?

最佳答案

计算通常需要将数据从一个站点移动到另一个站点,并且没有任何共享内存。因此,一个计算将包含数据的消息发送给另一个计算。

如果数据任意复杂,应该如何在消息中发送?

编码是将数据字段或整组相关结构转换为可以在消息中发送的序列化字符串的过程。编码二进制文件如果消息格式必须是文本,则可以将其转换为十六进制数字字符串。如果消息将携带二进制数据,则二进制数可能会转换为 4 个小端标准化二进制字节并以这种方式发送。指针比较难;人们经常必须将它们转换为独立于实际内存位置的抽象引用(例如“节点号”)。

当然,如果你“编码”数据,最终必须“解码”,这是读取串行流并重建传输的数据(结构)的过程。

库中通常有用于实现此目的的(取消)编码例程,有时甚至有一些工具可以生成(取消)编码例程上发送/接收数据所需的所有调用。

关于.net - 什么是编码?当某事为 "marshalled?"时发生了什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5600761/

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