1

我目前正在研究基于套接字的技术,其中我的客户端(C++)和服务器(.Net)使用基于套接字的通信来发送和接收数据,但现在我希望用 WCF 替换我现有的套接字服务器。在进行任何此类动作之前,我想完全澄清它

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

4

2 回答 2

1

在不了解您的应用程序的所有详细信息的情况下,这是一个相当难以回答的问题,因此我将尝试以与您所要求的顺序不同的顺序来回答这个问题。

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

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

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

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

于 2013-01-14T10:52:26.537 回答
1

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

于 2013-01-14T16:06:00.310 回答