所以我一直在寻找不同的方法来创建客户端和服务器程序(使用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)需要更多代码 这个比那个好吗?
答案 0 :(得分:3)
TCP / IP和UDP是用于数据传输的协议(从此处获取数据包)。前者是面向连接且可靠的,而UDP是无连接且不可靠的。他们都不关心数据实际是什么(文件,网页,视频等)。
TCP / IP在两个端点之间创建连接,然后在另一端接收到的一端发送的数据。
UDP没有连接的概念,它是一次性发送&#34;发送&#34;,没有关于交付的保证。
在TCP / IP和UDP之上构建了几个更高级别的网络协议。例如,HTTP(允许您查看此网页)。
RPC是一种更高级别的协议,它允许一台计算机在另一台计算机上执行代码。您引用的代码行仅仅是为该RPC实现设置配置参数。
总结:RPC需要一个网络传输协议(如TCP / IP)来完成它的工作,但RPC是一个更高级别的协议,它实现了一个不同的目的,而不仅仅是将非结构化数据从一台计算机发送到另一台计算机。
答案 1 :(得分:2)
你在谈论不同的观念。 RPC是机制,TCP / UDP - 通信方式。 RPC概念有很多不同语言的实现:read wiki。 TCP / UDP - 是传输。
因此,在您的情况下,“使用TCP / UDP”意味着“基于TCP / UDP创建自己的RPC”。我建议你阅读现有的RPC实现,并根据你的任务选择最可接受的。