【发布时间】:2015-02-09 04:28:57
【问题描述】:
我与一位同事就选择发生了争执。 我们有两个进程在同一台机器上运行。
=> NamedPipe 和 UDP 是内核对象,据我所知这是相同的开销。
UDP 的优势在于,如果明天我们将这两个进程分开,它们将在两台不同的计算机上运行,所以我不必进行任何更改。
我认为 NamedPipe 性能更好,因为不需要使用网卡将信息发送到同一台机器(我是对的..发送 localhost 将使用网卡 - 对吗?)
任何人都可以告诉我们吗?
谢谢
【问题讨论】:
-
网络硬件即使使用UDP也不会被使用,只要I/O被限制在那台机器上。操作系统足够聪明,可以将流量路由到自己。但还有其他更重要的考虑因素。 Kumar 的回答很好地概述了这些内容。
-
不确定如何在两台计算机之间使用 UDP 优于使用命名管道...请澄清。
-
“UDP 的优势在于,如果明天我们将这两个进程分开,它们将在两台不同的计算机上运行” - 也许。 Native 管道将在本地或 LAN 上工作,您无需更改应用程序。如果您想以 LAN 为目标并且不想采用本地方式,请查看 .NET 的 NamedPipeServerStream。只有 WCF 的
NetNamedPipeBinding似乎是 localhost-only
标签: c# .net udp named-pipes udpclient