gpt4 book ai didi

c# - 我应该使用 WCF 来实现给定的二进制网络协议(protocol)吗?

转载 作者:太空狗 更新时间:2023-10-29 21:36:02 25 4
gpt4 key购买 nike

我有一个客户端设备(POS 手持设备),它通过 TCP/IP 或 RS232 与其服务器进行通信。该协议(protocol)是给定的二进制格式,我无法更改。我必须为那个设备实现一个服务器。我的印象是,WCF 是比手动实现任何东西更好的选择。但是因为尝试它需要相当长的时间,所以我想请教一下这是否是个好主意,以及是否可以将 WCF 微调到这样的详细程度。

我发现了一些与我类似的问题,但在那些情况下,OP 始终完全控制客户端和服务器。我的情况并非如此。

如果 WCF 是个好主意 - 我认为 - 一些起点将非常感激。大多数文档都侧重于 SOAP、REST 等,而不是我必须处理的较低级别。

最佳答案

使用 WCF 多年(并且喜欢它),我认为它不是满足您需求的最佳选择。正如 Phil 所提到的,它的最佳位置是围绕 Web 服务,而不是低级通信。要在 WCF 中实现它,您需要编写自定义传输,与几乎所有低级( channel 编程)一样,它涉及大量代码。此传输需要使用套接字来理解设备协议(protocol),并且您需要以某种方式将消息从协议(protocol)转换为 WCF 消息。

如果协议(protocol)很简单,我认为“纯”基于套接字的实现是最好的方法。无论如何,WCF 解决方案都需要套接字处理代码(用于与设备通信),但您可以创建自己的消息类型,而不必遵守 WCF 使用的(相当 SOAP 友好的)消息协议(protocol)。

如果你要一路走下去并实现自定义 WCF 传输,它会“谈论”该协议(protocol),那么你将拥有的一个优势是,如果你将它公开给已经习惯 WCF 的许多不同的人 -实现服务的方式 - 您必须承担编写 WCF 传输的初始(非常高)成本,但后来人们可以使用 WCF 提供的良好契约模型为该设备编写服务。

关于c# - 我应该使用 WCF 来实现给定的二进制网络协议(protocol)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7099685/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com