在 RPC 中,客户端和服务器端的 stub 需要对数据进行编码和解码,然后将其发送到下层以通过网络发送。 TCP/IP 是否也将数据编码为二进制流?为什么中间件需要编码(marshal)调用请求?
我试图理解我很困惑,因为据我所知,使用 IPC 我们不会整理数据,我们只是使用 send() 和 receive()。
谢谢。
最佳答案
代理的工作是通过将参数序列化为字节来编码来自客户端的调用,以便它可以通过网络传输。服务器中的 stub 再次反序列化它们并进行调用。可能的返回值以相同的方式返回。
TCP 中没有编码(marshal)处理,它只是传输字节。
关于networking - RPC 和 IPC 数据编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19329704/