2011-05-19 118 views
4

我想弄清楚哪个客户端/服务器技术(即.NET Framework的哪一部分)用于我们的新应用程序。我们将使用.NET 3.5 SP1在C#中编写应用程序。双向沟通服务器/客户端架构?

它将包含一个将作为“服务器”运行的中央服务器,并且多个客户端应用程序分布在多台机器上。客户端应用程序是一个trayapp应用程序,它将接收来自服务器的通知,并且还将一些信息发送回服务器。因此沟通将是双向的,而且需要快速。服务器将需要知道将通知发送到哪个客户端。

我一直在想我可以使用套接字。我也遇到了TcpListener和TcpClient类。另一种选择是使用WCF做些事情,但我不确定如何与它进行快速双向通信。

+1

看看这里http://realfiction.net/go/113 – 2013-03-11 19:11:02

回答

3

不知道您计划交换多少数据,很难做出明确的建议。我使用WCF和TCP套接字在我的UI和我的Windows服务之间交换数据。这是我所做的考虑。

我使用WCF来表示我称之为非周期性数据交换。例如,当我的Windows服务中发生事件时,我使用WCF将事件传递给UI。特别是对于这种基于事件的机制,我会强烈推荐Juval Lowy的Publish-Subscribe Framework,这是免费提供here。我还使用WCF将配置更改从UI传递到Windows服务。 WCF是为我进行这种数据交换的完美解决方案。

当用户告诉我的Windows服务执行某些操作时,会有很多数据从Windows服务发送到UI。为此,我使用TCP套接字。我知道WCF具有流媒体功能,我强烈地考虑使用它。在我必须做出决定之前,我只是没有时间去适应它,所以我按照我所知道的去做。

虽然我希望我全面使用WCF来实现对称性,即非周期性和流式数据,但这种混合方法对我很好。

希望这会有所帮助。

+0

针对pub/sub框架的+1 – jgauffin 2011-05-20 06:13:32

4

带有NetTcp绑定的WCF。

你应该写一个双工服务。

+2

你可以进入更多的细节,优点/缺点。 WCF和NetTcp带来的高级别概述或为什么应该使用双工服务等。 – Raynos 2011-05-19 21:09:38

+0

@射线:这不是真的必要。 WCF应该用于所有这些工作,除非有真正的理由不这样做; netTCPBinding是.NET到.NET WCF通信的明显选择;而双工服务是与WCF进行双向通信的唯一方式。 – 2011-05-20 02:21:37

1

如果我是你,我会避免套接字,因为有很多事情需要了解它们。看看SO的所有socket questions。如果你不知道如何正确使用它,那将是一场噩梦。

WCF将为您处理所有较低级别的问题。

相关问题