有没有可能将Delphi /IP应用程序转换为SoapServer?
发布于 2010-09-01 20:10:54
从你的评论到你的问题,听起来你想摆脱SOAP,使用其他东西通过TCP/IP连接进行通信。
人们可能会问的问题是,为什么要将转换为基于TCP/IP的非SOAP通信?
但是,这是否可能的答案是:当然,这是可能的,有许多应用服务器使用TCP/IP进行通信,而不使用SOAP作为其通信协议。
您需要某种协议来实现服务器和客户端之间的通信。您可以使用自己的代码,但要做SOAP现在正在为您做的事情:接收和响应来自客户端的命令(或方法调用),以及在服务器和客户端之间编组数据/对象,这不是一项简单的任务。
因此,我建议您考虑一下用于客户端/服务器通信的其他远程处理库,例如:
http://www.remobjects.com/
发布于 2010-09-01 11:34:14
如果你谈论的是Delphi2009之前的DataSnap,意思是基于COM的DataSnap,那么你必须使用第三层实用程序来进行通信。名为sockets.exe的实用程序包含在Delphi中,与Delphi位于相同的目录中(Program Files\\bin
如果是Delphi2009或更高版本,那么DataSnap具有内置的TCP/IP功能。您可以使用TDSTCPServerTransporter组件。
更新: Ups!出于某种原因,我确实阅读了DataSnap SoapServer (两者都不存在,但我确实想到了Soap连接)。Soap服务器应用程序需要“服务器”部分,即web服务器。SOAP是一种运行在HTTP协议上的技术,所以我不认为它可以被“转换”。DataSnap可以完成这项工作,或者Indy TIdTCPServer或一些派生类。
发布于 2010-09-01 20:56:53
正如其他人所说,SOAP只是http/https上的XML,而且通常已经使用了TCP。也就是说,您可以简单地将其视为原始套接字数据或http数据。也就是说,您可以创建一个客户端,它只使用http POST将字符串发送到服务器。该字符串将包含一个XML SOAP请求,并且将被服务器视为SOAP。同样,您可以以非SOAP方式构建服务器,只需接受XML并返回XML,客户机就不会知道其中的区别。
你可以使用Fiddler2来使用它。您可以构建请求并通过HTTP Post发送它们。服务器不知道您不是SOAP客户端。
克里斯
https://stackoverflow.com/questions/3614597
复制相似问题