所以我一直在寻找不同的方法来创建客户端和服务器程序(在 C++ 中使用 Visual Studios),我遇到了 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/