将数据传递给服务器进行计算

时间:2014-02-05 13:40:20

标签: c# sockets communication

如何在桌面上运行的c#中创建程序,但在某些情况下,能够将变量和对象传递给服务器。然后,服务器将处理变量,然后将结果返回到桌面上的程序以进行进一步处理。

因此,例如,我想将双打3.5和4.5传递给服务器。然后,服务器将添加3.5和4.5以将8返回到桌面上的程序。然后,桌面上的程序将进一步使用8。

我是否必须编写两个单独的程序?一个在服务器上,一个在桌面上。如果是这样,我该如何链接它们。即如何将数据从桌面上的程序传递到服务器上的程序,反之亦然?

非常感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

您不需要两个不同的程序。虽然这种方式更容易,但您可以坚持使用以不同模式运行的方式。

WCFWebApiServiceStackMessageBus可以用于此目的。

但是你正在做一个很难实现的跳跃。

你有一个同步本地应用程序(一切都在一个应用程序中运行),你想要一个异步远程应用程序(一切都是并行化并在另一台机器上执行)。 WCF等为您提供了一个简单的开始,但我建议您采用较小的步骤,因为它不会减轻所有问题。

首先保留同步应用程序并使其异步。因此它在多线程环境中向自己发出一些消息(例如两个双打)并等待它而不会阻塞。

这引入了一系列问题(线程,等待,锁定)。

完成此操作后,您应将功能外部化为单独的应用程序或以“服务器”模式运行的同一应用程序,从而生成异步本地应用程序。 在这一步中,您已跨越应用程序边界,同时已经实现了线程并仍然是本地的。

完成后,开始考虑将服务器应用程序放在远程计算机上并处理(通信,资源可用性,协议等)。

每一步都很复杂。通过一次完成所有操作,您将需要同时处理多线程,阻塞应用程序,WCF的复杂性,连接处理(超时,代理,不可用资源,连接中断等)和外包处理

答案 1 :(得分:0)

是的,你确实需要两个程序。如前所述,WCF和ASP.NET WEB API是两种最常用的Microsoft技术,但您可以使用您想要的任何技术。基本上,您需要在WCF或ASP.NET中构建服务器端应用程序,然后您将向客户端应用程序添加服务引用。创建该服务引用时,您将指定服务的URL,Visual Studio将构建应用程序之间通信所需的类。完成后,您可以像使用任何常规方法一样调用服务器应用程序。