gpt4 book ai didi

c++ - rpc 和普通 tcp/udp 服务器客户端程序的区别?

转载 作者:可可西里 更新时间:2023-11-01 02:32:37 24 4
gpt4 key购买 nike

所以我一直在寻找不同的方法来创建客户端和服务器程序(使用 C++ 中的 visual studio),然后我遇到了 RPC(远程过程调用)。但我注意到这也使用了 tcp/ip 或 udp 连接。

那么使用 RPC 与仅使用基本的 tcp/ip 或 udp 连接来连接客户端和服务器有什么区别?

代码完全不同,例如在 RCP 中使用 tcp:

      reinterpret_cast<unsigned char*>("ncacn_ip_tcp"), // Use TCP/IP protocol.
reinterpret_cast<unsigned char*>("localhost"), // TCP/IP network address to use.
reinterpret_cast<unsigned char*>("4747"), // TCP/IP port to use.

但在其他程序中(例如使用 WinSock)它需要更多的代码这个比那个好吗?

最佳答案

TCP/IP 和 UDP 是数据传输协议(protocol)(从这里到那里获取数据包)。前者是面向连接的、可靠的,而 UDP 是无连接的、不可靠的。他们都不关心数据实际上是什么(文件、网页、视频等)。

TCP/IP 在两个端点之间创建一个连接,然后在一端发送的任何数据都会在另一端接收。

UDP 没有连接的概念,它用于一次性“发送”,不保证交付。

一些高级网络协议(protocol)建立在 TCP/IP 和 UDP 之上。例如,HTTP(可让您查看此网页)。

RPC 是一种更高级别的协议(protocol),它允许一台计算机在另一台计算机上执行代码。您引用的代码行只是为该 RPC 实现设置配置参数。

总结:RPC 需要一个网络传输协议(protocol)(如 TCP/IP)来完成它的工作,但 RPC 是一个更高级别的协议(protocol),它实现的目的与仅仅将非结构化数据从一台计算机发送到另一台计算机不同。

关于c++ - rpc 和普通 tcp/udp 服务器客户端程序的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15899720/

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