将数据从php发送到c#桌面应用程序

时间:2012-05-29 15:22:57

标签: c# php

我正在研究一个涉及php和c#的项目。我需要做的是从PHP用户可以执行某项任务,一旦php处理了一些信息,这些信息需要发送到c#应用程序,c#可以用提供的信息做一些其他工作。

c#应用程序最有可能来自运行php web应用程序的同一台服务器,但如果它们位于完全独立的服务器上,它应该可以工作。

我想我可以将一些XML从php发送到运行c#程序的任何IP地址,但不知道我将如何使用php来执行发送和c#app来执行数据列表。

非常感谢任何帮助。

4 个答案:

答案 0 :(得分:3)

您没有指定要发送的数据的性质,但如果您是通过Web发送数据,则使用与语言无关的方法(如XML,JSON,Web服务等)意味着您的服务器端语言在很大程度上是无关紧要的。

但是,如果您要发送类似大型电影文件的内容,那么使用FTP或类似内容可能会更好。

答案 1 :(得分:2)

SOAP

在一个缩写词中,您可以解决(几乎)生活中的任何互操作性问题。

“简单地”定义在桌面应用程序中运行的Web服务(可能但不是那么简单)并实例化PHP SoapClient

XML(纯)

当然,您可以将直接XML输入发送到桌面应用程序。这使用了.NET Socket(System.Net.Sockets)和PHP套接字I / O(fsockopen)。您可以创建特定于应用程序的协议并注入XML数据。

如果您已经非常熟悉XML并且对套接字很熟悉,建议您使用。 如果您想要更高级别的可重用性,请不要推荐。

答案 2 :(得分:0)

您可以在C#服务中打开WCF频道,然后使用PHP调用它。

答案 3 :(得分:0)

您应该在桌面应用程序中托管self host WCF service并从您的php应用程序中调用服务。

using System.ServiceModel;
using System.ServiceModel.Description;

示例代码:

[ServiceContract]
public interface IHelloWorldService
{
   [OperationContract]
   string SayHello(string name);
}

public class HelloWorldService : IHelloWorldService
{
  public string SayHello(string name)
  {
    return string.Format("Hello, {0}", name);
  }
}