我正在寻找关于如何在WCF中实现可靠的UDP传输的建议和指导。
我需要创建一个客户端和服务器都需要相互提供服务的应用程序,WCF在我看来是一个非常好的选择。我是WCF的新手,我只知道最基本的知识。据我所读,WCF双工TCP通道创建了一个从客户端到服务器的TCP连接,以及另一个从服务器到客户端的回调连接,这对我来说是个问题,因为客户端通常在防火墙/路由器后面。我正在考虑使用UDP传输来避免这个问题,因为UDP是无连接的,但是我需要实现一个可靠的面向连接的UDP传输来完成我所需要的事情。
我已经了解了在MSDN上自定义UDP传输示例,但我仍然不知道实现与通常的TCP传输基本相同的自定义传输需要什么,假设我已经知道如何实现UDP的可靠性内容。
作为使用内置TCP传输实现所需功能的可能替代方案,我已经阅读了关于长轮询的文章,但这似乎有违直觉,似乎给整个过程增加了不必要的复杂性。不过,我愿意就UDP方法的替代方案提出建议。
发布于 2019-03-20 03:14:58
您的想法很棒,而UDP协议在本质上是不可靠的。因此,WCF双工信道是基于TCP协议的。正如文章中提到的,
对于UDP传输,唯一支持的MEP是数据报,因为UDP本质上是一个“火与忘”协议。
据我所知,为了保证UDP通信的可靠性,应用层协议应该完成确认和超时重传机制。这意味着我们应该考虑在应用层实现可靠的UDP传输(至少还没有正式实现)。
https://www.codeproject.com/Articles/331599/What-s-new-in-WCF-4-5-UDP-transport-support
https://stackoverflow.com/questions/55250234
复制相似问题