我如何用WCF取代我现有的.net套接字服务器

本文关键字:net 套接字 服务器 何用 WCF 取代 | 更新日期: 2023-09-27 17:52:50

我目前在基于socket的技术工作,我的客户端(c++)和服务器(。net)使用基于套接字的通信发送和接收数据,但现在我希望用WCF取代我现有的套接字服务器。在做任何这样的动作之前,我想彻底澄清一下

1)是否有可能替换现有的插座,如果是,我该如何做到这一点。2)服务器套接字应用程序监听定义的IP/端口,客户端套接字应用程序仅向该IP/端口发送请求,但在WCF的情况下,有完整的URI,即IP/端口,它还包含WCF服务的名称,所以如何做到这一点。3)我需要为它使用哪种类型的绑定配置,如果它是基本的还是不可以,它将极大地影响我的应用程序的性能。

我如何用WCF取代我现有的.net套接字服务器

当我们使用套接字编程时,我们在非常低的层次上进行编程,wcf, web服务或远程处理都不能与套接字应用程序相比表现良好。WCF提供了如此多的功能,但所有这些功能都是基于绑定配置的,与套接字应用程序相比,所有这些功能都处于非常高的水平,因此就性能而言,套接字应用程序将比WCF表现得更好,如果已经构建了,则无需替换它。

在不知道应用程序的所有细节的情况下,这是一个相当困难的问题,所以我将尝试以与您所问的不同的顺序回答这个问题。

2) WCF支持多种传输配置。这些并不局限于HTTP。例如,网络。TCP传输根本不使用HTTP,但它确实实现了一些需要在客户端复制的复杂功能。例如消息框架。这就限制了您只能选择一种基于标准的方法(除非您喜欢这样做)。

3)是的,http传输可能会比直接套接字通信慢。您需要准确地配置您需要WCF的哪些特性以及您需要的性能,因为有许多不同的配置选项可能会对此产生影响。

1)所以我想这是主要的答案。是的,这是可能的,但您将需要在客户端和服务器上进行更改。虽然您有可能扩展WCF以支持现有的套接字消息传递格式,但这可能是一个困难且代价高昂的开发过程。因此,您可能希望使用Web服务(又名http绑定之一)来实现这一点,而不是使用net。Tcp、msmq等

请注意,WCF实际上是非常可配置的,每一层都有能力定义自定义传输、消息传递、安全等。因此,我建议您阅读文档