C# WCF服务能否取代TCPListener的功能?

C# WCF服务能否取代TCPListener的功能?,c#,wcf,tcplistener,C#,Wcf,Tcplistener,我有一个基于TCPListener的服务器应用程序,它在单个特定端口上侦听客户端。客户端连接,发送一些xml,获取一些xml作为响应,然后断开连接 在不改变客户端的情况下,是否可以用WCF服务替换基于TCPListener的应用程序?如果是这样的话,有谁能提供一些资源来帮助我构建这样的服务吗?理论上是的。WCF有许多扩展点,因此您可以包括您自己的、您自己的等。您可以包括影响消息格式等的自定义行为。即使您有专有的消息格式或传输协议,您也应该能够做到这一点。但这是一个很大的工作 如果您真的想尝试它,

我有一个基于TCPListener的服务器应用程序,它在单个特定端口上侦听客户端。客户端连接,发送一些xml,获取一些xml作为响应,然后断开连接


在不改变客户端的情况下,是否可以用WCF服务替换基于TCPListener的应用程序?如果是这样的话,有谁能提供一些资源来帮助我构建这样的服务吗?

理论上是的。WCF有许多扩展点,因此您可以包括您自己的、您自己的等。您可以包括影响消息格式等的自定义行为。即使您有专有的消息格式或传输协议,您也应该能够做到这一点。但这是一个很大的工作


如果您真的想尝试它,您可以从自定义消息编码器开始,它将接收消息并将其作为您的自定义XML格式写入二进制编码器。在自定义绑定中结合此新编码器与内置TCPTTransport。这将很难调试。提供了添加JSONP支持的示例。我认为这是类似的做法。它使用内置传输和编码器,并添加自定义消息格式。

简单的基于tcp的服务器不遵循net.tcp for wcf遵循的消息帧协议


这使得实现能够与使用自定义TCP侦听器服务和您自己的消息传递方案的客户端对话的WCF变得非常困难

客户没有任何变化?在TCPListener上使用的是什么协议?如果不是SOAP/JSON,我认为如果不修改客户端代码,你就不会有太多的运气。两者都不是,而且客户端是第三方应用程序,这就是为什么我无法更改它们的原因。听起来像是做了很多工作,但没有什么好处,TCPListener解决方案工作得很好,我只是好奇这是否可能。