在.NET程序之间进行通信

3

我想在两个C#应用程序之间建立简单的数据通信,但不确定最佳方法是什么。我以前使用过Java套接字和ServerSockets来完成工作,但我对C#还不熟悉,因此来寻求建议 :) 这将是双向通信,两个客户端交换字符串或类似内容。


我认为你应该再精确一些。比如你的“C#应用程序”是什么?Web应用程序?Windows表单应用程序?还是其他什么类型的应用程序?它们在哪儿“生活”?同一台机器上?局域网上?互联网上?如果有人能够呈现“在C#中实现两个应用程序之间进行双向通信的最佳方法”,那会让我稍微有点惊讶。无意冒犯。 - scherand
你说得对,对此我很抱歉。我想让两个用户客户端相互连接并交换信息。我本来希望避免使用独立的服务器应用程序,但如果必须的话,我当然会接受。我的意图是在不同的机器上通过互联网进行通信。我并没有生气,我所问的问题中所指的是“简单的方法”,而不一定是“最好的方法”-就像我说的,我对C#还很陌生,希望尽量保持初学者的水平。 - IronManIngellis
4个回答

4

您需要的是WCF(Windows Communication Foundation)。


1
远程调用是WCF中的一种可能选项,但也有其他选项,而不需要改变任何一行代码,只需修改配置文件即可。 - Jaxidian

1

你有几个选项:

  1. 使用pipes
  2. 使用sockets
  3. WCF

4
就翻译而言,"FWIW, WCF gives #1 and #2 as an implementation option." 的意思是:WCF提供#1和#2作为实现选项。 - Jaxidian

0

3
.NET Remoting 已被 WCF 取代,因此请勿向新人推荐使用 .NET Remoting。 - John Saunders
我不同意 .NET Remoting 被 WCF 取代的观点。这是否意味着如果我使用 TCP 或者 pipes,Microsoft 将不再支持我的代码?显然不是。另外,请查看我回答中的链接。如果出现停用问题,该链接指向的内容会有所说明。虽然 Microsoft 在一般情况下可能更喜欢 WCF,但这个市场营销问题并不使我的回答不正确。 - Dave Swersky
3
你的链接是.NET 1.1链接。请仅在回答.NET 1.1问题时发布此类链接。当前的链接是http://msdn.microsoft.com/en-us/library/kwdt6w2k.aspx,其中写着,“此主题特定于保留用于向后兼容现有应用程序的遗留技术,并且不建议用于新开发。分布式应用程序应使用Windows Communication Foundation(WCF)进行开发。链接= http://go.microsoft.com/fwlink/?LinkID=127777”。 - John Saunders

0
我也建议看一下NServiceBus。它非常容易设置,并为您提供可靠的消息传递系统。无论目标应用程序是否在线,发送的任何消息都会被始终传递。该库利用MSMQ来促进通信。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接