C#:Instant Messager - 网络(.NET Remoting / WCF /套接字)?

时间:2010-12-12 13:53:03

标签: wcf sockets client remoting

我打算建立一个即时消息 现在我必须决定如何实现网络。 到目前为止,我只使用套接字(TCP或UDP)。现在我听说过RMI(在Java中)并希望在我的C#-Chatapplication中使用它。

有.NET Remoting和WCF。我认为使用套接字构建即时消息是不是一个好主意,对吧?但那应该用吗? .NET Remoting还是WCF? .NET Remoting似乎是较旧的技术,类似于Java RMI。我读到.NET Remoting比WCT更快(2007年的文章)。

我应该将哪种技术用于即时消息?我想从richtextbox和内嵌图像发送格式化文本。 此外,我想从聊天客户端交换文件到聊天客户端。

对于.NET Remoting,我找到了一个使用

的教程
ChannelServices.RegisterChannel(myChan);

但这标志着已经过时了。 .NET Remoting是一种过时的技术吗? 是否可以使用WCF或.NET Remoting发送图像和文件,或者套接字是更好的选择吗?

我读到WCF是网络技术(Web服务,远程处理等)的集合,但如果我搜索WCF和远程方法调用,我只会获得Web服务的示例......

BTW:后来,我想用ASP.NET实现我的即时消息的Web客户端。网络(WCF / Remoting)是否有一些限制?

谢谢:)

2 个答案:

答案 0 :(得分:1)

对于您的即时消息解决方案,我建议 WCF P2P 这里有一篇文章可以帮助您Peer-to-Peer Programming with WCF,这里是codeproject上的p2p示例。

答案 1 :(得分:1)

仅为向后兼容性as of .NET 3.0维护.NET Remoting。因此,如果您要使用.NET 3.0或更高版本,请使用WCF。

为了立即使用,我建议使用NetTcpBinding。然后,您可以使用下面的图表选择更合适的绑定。

WCF Binding Selection Flow Chart

最后,要了解WCF,请参阅this SO question