networking - RPC 和 IPC 数据编码

标签 networking marshalling unmarshalling

在 RPC 中,客户端和服务器端的 stub 需要对数据进行编码和解码,然后将其发送到下层以通过网络发送。 TCP/IP 是否也将数据编码为二进制流?为什么中间件需要编码(marshal)调用请求?

我试图理解我很困惑,因为据我所知,使用 IPC 我们不会整理数据,我们只是使用 send() 和 receive()。

谢谢。

最佳答案

代理的工作是通过将参数序列化为字节来编码来自客户端的调用,以便它可以通过网络传输。服务器中的 stub 再次反序列化它们并进行调用。可能的返回值以相同的方式返回。

TCP 中没有编码(marshal)处理,它只是传输字节。

关于networking - RPC 和 IPC 数据编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19329704/

相关文章:

c# - 通过套接字从 C++ wchar_t 到 C# char

java - 将 JavaMail 消息的 HashMap 传递给 Android Activity

安卓|在 bundle 中使用 Parcelable 数据时解码未知类型

c++ - 当与服务器的连接未保留时使用 SSL

python - 网络x : multiple figure with consistent node placement

javascript - <脚本类型 ="module"> 加载性能

c# - Marshal.AllocHGlobal(0) - 为什么这不返回 IntPtr.Zero

networking - 为什么 "netstat -a"不立即退出但 "netstat -n"呢?

java - 为什么 JAXB 需要一个无参数构造函数来编码?

java - Grails 和 Java : Proper way to unmarshall Json from Grails in Java app