2015-02-09 79 views
1

我与同事就选择问题发生了争论。 我们有两个进程在同一台机器上运行。需要在NamedPipe或UDP之间选择

=> NamedPipe和UDP是KERNEL OBJECT,据我了解这是相同的开销。

UDP的优点是,如果明天我们将分开这两个进程,它们将在两台不同的计算机上运行,​​所以我不必更改任何内容。

我认为NamedPipe性能更好,因为没有必要使用一个网卡将信息发送到同一台机器(我说的对..发送本地主机将使用网卡? - 右)

任何人都可以提醒我们吗?

感谢

+1

检查此链接:http://stackoverflow.com/questions/6494993/named-pipes-vs-udp-for-ipc-on-windows – Vinkal 2015-02-09 04:52:46

+2

即使使用UDP,网络_hardware_也不会被使用,如只要I/O限于一台机器即可。操作系统足够聪明,可以将流量路由到自己。但还有其他更重要的考虑因素。库马尔的回答在描述这些问题方面做得很好。 – 2015-02-09 04:53:02

+0

不知道如何在两台计算机之间使用UDP与使用命名管道做同样的优势...请澄清。 – 2015-02-09 05:00:06

回答

4

实施之前,你可以照顾以下几点:

命名管道:

  1. 命名管道提供一个管道服务器和一个或进程间通信更多管道客户端。

  2. 它们支持基于消息的通信,并允许多个客户端使用相同的管道名称同时连接到服务器进程。

  3. 命名管道还支持模拟,它使连接进程能够在远程服务器上使用自己的权限。

用户数据报协议:

  1. 用户数据报协议(UDP)是一个简单的协议,这使得将数据传送到远程主机尽力而为。
  2. UDP协议是无连接协议,发送到远程端点的UDP数据报不能保证到达,也不能保证按照发送它们的相同顺序到达。
  3. 使用UDP的应用程序必须准备好处理丢失,重复和不按顺序的数据报。